我正在嘗試製作一個Java Applet,它將允許我在畫布中繪製圖形數據結構。我將通過單擊我想要創建節點的位置並單擊節點來連接它們來完成此操作。問題是我不能讓paint()
方法正確行爲。我添加mousePressed(MouseEvent e)
方法內的圖形新節點(和畫布上正方形)使用,Java 2D圖形矩形
Graphics g = this.getGraphics();
g.setColor(Color.blue);
g.fillRect(e.getX(), e.gety(), 40, 40);
一切工作正常,直到我調整窗口的大小,然後將所有的填充的矩形消失。我重寫了paint方法只是一個空方法,但同樣的事情仍然發生。我不能在paint()內部添加fillRect命令,因爲我不知道在用戶使用鼠標與它進行交互之前存在什麼矩形。
如何在鼠標偵聽器方法中使用g.fillRect()
並讓它們粘住?
這似乎是最簡單的方法,我創建了一個新的BufferedImage,然後在其上繪製了所有的形狀,並使繪製方法繪製圖像。謝謝! – PherricOxide 2009-11-26 06:37:39
沒問題,儘管最終可能需要完全重新繪製,所以請記住Kyl的建議。 (還有,記得投票並「接受」你喜歡的答案,我想要我的業力點:) – Gunslinger47 2009-11-26 06:46:28
在這種特殊情況下,保存數據可能比緩存圖像更好。但是,+ 1爲了獲得兩個極端。 – 2009-11-26 06:46:31