2013-10-07 31 views
0

我有一个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

这就是为什么你不应该使用'getGraphics' – MadProgrammer

回答

2

如果我使用重绘,先前图形消失。

是的,因为整个组件重新被重新绘制,并且面板所做的第一件事是绘制其背景以清除所有旧的绘画。

见的两种常用方法做画Custom Painting Approaches

  1. 使用列表抱着你要画
  2. 使用一个BufferedImage对象。