2010-11-21 78 views
2

我使用getGraphics和drawLine和fillOval命令绘制到JPanel上,但运行该程序时非常令人费解。但是,当我调试它时,它每次都会绘制。绘制的图像不保留在屏幕上

draw.drawPoints(drawing.getGraphics(), xCoord, yCoord); 

电话:

public void drawPoints (Graphics g, int x, int y){ 
    g.setColor(Color.red); 
    g.fillOval(x, y, 5, 5); 
} 

编辑:它不会总是吸引。大部分时间都保持空白。

+1

你是什么意思的“气质”呢?究竟发生了什么? – 2010-11-21 17:27:18

回答

3

我使用的getGraphics

绘制到一个JPanel,你不应该从drawing.getGraphics()得到一个Graphics对象画上了JPanel东西。

相反,您应该重写paintComponent(Graphics g)方法并在那里进行绘画。

一个简单的例子,让你开始:

container.add(new JPanel() { 
    public void paintComponent(Graphics g) { 
     drawPoints(g, xCoord, yCoord); 
    } 
}); 
0

每次对象被重新绘制时都需要这样做。