我有一个JPanel,在开始时绘制了点数。当我在这些点之间穿越时,我试图在这些点之间添加线条。但线条没有显示出来。如果我使用重绘,之前的绘图就会消失。以下是我的代码。我是否需要刷新drawLine代码?
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
//works fine
private void doDrawing(Graphics g) {
g.drawLine(x, y, x, y);
}
//called later from outside, lines do not show up on Panel
public void drwaLine(Point p1, Point p2) {
Graphics g2d = getGraphics();
g2d.drawLine(p1.getX(), p1.getY(), p2.getX(), p2.getY());
}
答案 0 :(得分:2)
如果我使用重绘,之前的绘图就会消失。
是的,因为整个组件再次重新绘制,并且面板所做的第一件事是绘制背景以清除所有旧绘画。
有关绘画的两种常用方法,请参阅Custom Painting Approaches: