2012-04-07 67 views
0

我們如何繪製Java中的形狀,就像我們在繪畫中一樣?由鼠標控制的形狀繪圖

例如,如果我想繪製矩形這個命令會繪製:

g2.fill3DRect(mt, mf, 45, 45, true); 

但我怎麼能增加或減少一個對象的大小或使用鼠標像我們一樣在運行時的形狀在油漆?

+0

附註。人們通常推薦重寫'paint()'或'paintComponent()'並使用'Graphics'對象來繪製。這裏有2個例子([1](http://stackoverflow.com/a/10055672/418556),[2](http://stackoverflow.com/a/10055306/418556)),而是使用'BufferedImage' 。我們可以直接從圖像中抓取圖形對象,以便進行「自定義繪畫」。 – 2012-04-07 17:07:57

回答

1

使用mouse listener得到鼠標的位置已經被按下後。即

g2.fill3DRect(mt, mf, mouse.getX(), mouse.getY(), true); 

但是,每次抽籤前繪製整個屏幕的矩形清除屏幕,以便有沒有在同一時間一百萬矩形。這是當然最基本的例子。研究雙緩衝和練習。

0

實現一個包含形狀屬性的形狀對象。

您的面板應該維護它在需要時繪製的形狀列表。還有一種形狀可以連接到鼠標。

然後註冊的MouseListener到面板上,將:如果您移動鼠標

  • 更新您的形狀和重繪面板。
  • 創建一個新的形狀,當你MOUSEDOWN
  • 釋放的形狀,當你鼠標鬆開