2014-03-13 74 views
0

我有一個圖像顯示在jLabel。點擊圖像的任何部分時,將繪製一個40x40的矩形。現在我想在按下REMOVE(jButton)按鈕時從圖像中移除繪製的矩形。我曾嘗試以下刪除矩形畫在圖像上

public void paint (Graphics g) { 
     g2 = (Graphics2D) g; 

     g2.clearRect(n,n1, 40,40); 

    } 

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
     // TODO add your handling code here: 

     repaint(n,n1,40,40); 
    } 

代碼它只是填充背景色,而不是removing.Is有什麼辦法去除矩形沒有填寫任何顏色的矩形?是通過保持原始圖像本身?

+0

你在調用'getGraphics()'來繪製圖像嗎?如果是的話,你應該看看http://docs.oracle.com/javase/tutorial/uiswing/painting/ – Marco13

回答

1

自定義繪畫在標籤的paintCompnent(..)方法中完成,而不是paint()方法。你也應該調用super.paintComponent(g)作爲第一條語句。

就你而言,這聽起來像是你需要一個布爾變量來控制矩形的繪製時間。也許是這樣的:

@Override 
protected void paintComponent(Graphics g) 
{ 
    super.paintComponent(g); 

    if (paintRectangle) 
     // paint the rectangle 
} 

現在在的ActionListener你只需設置paintRectangle變量在組件上虛假和調用重繪()。