使用repaint()时绘制图形而不删除它们

时间:2012-01-18 16:17:17

标签: java swing graphics

我有一个draw方法,我希望drawLine在调用repaint()后保留在屏幕上。 fillOval将会移动,没关系。但我希望drawLine只是在另一个位置重绘而不删除它。

public void paint(Graphics g) {
    super.paint(g);

    g.setColor(Color.RED);
    g.drawLine(x, y, x+10, y+10);
    g.setColor(Color.BLACK);
    g.fillOval(x - radius, y - radius, radius * 2, radius * 2);

}

2 个答案:

答案 0 :(得分:3)

在重绘请求中,您必须使用以下方法之一指定“脏区”的坐标和尺寸:

请注意,在执行自定义绘画时,您需要覆盖paintComponent,而不是paint

答案 1 :(得分:2)

您可以在x中存储每行的yList。在每个repaint()上,您只需重新绘制List

中的所有行