2011-10-11 51 views
1

以下代碼繪製分子的結構。如果我沒有通過一個分子,最後的結構會繼續在JPanel中出現。當沒有分子時,如何將其重置爲空白畫布。換句話說,我應該把drawMolecule()方法的其他內容放在哪裏?重置JPanel中的圖形

+1

我懷疑它與你的問題有關,但是你在super.paintComponents(g)中有一個錯字。擺脫「s」,它應該是super.paintComponent(g); – camickr

回答

2

您可以創建在其他新的BufferedImage,或者你可以得到的BufferedImage的Graphics2D的組成部分,通過setBackground(Color c)設置它的背景色,然後通過clearRect(...)清除圖像,然後在通過其dispose()方法進行處置Graphics2D對象的。

事實上,在回顧你的代碼時,我沒有看到你這樣做。如果你自己創建了它們(如果通過它的paint或paintComponent方法從JVM中獲得的話),不要忘記在使用它們的時候處理Graphics或者Graphics2D資源。

+0

我試過dispose()和clearRect()..沒有工作!我也嘗試過移動Graphics2D g2 =(Graphics2D)image.getGraphics(); g2.setColor(Color.WHITE); g2.fillRect(0,0,w,h);出了第二塊如果塊..沒事! – lochi

+1

@lochi:「沒有工作」告訴我們一點。將您的新代碼和任何錯誤消息或有關錯誤行爲的信息顯示爲對原始帖子的修改,然後請將我標記回原位。 –