2013-10-07 37 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對象。