簡體   English   中英

如何創建將響應鼠標單擊的Java swing圖形對象?

[英]How to create java swing Graphic object which will response to mouse clicks?

我需要在“畫布”的不同位置動態繪制圖形元素(正方形),並且需要聽鼠標單擊以更改正方形的位置。 如何將鼠標偵聽器添加到Graphics對象? 我是否必須使用另一種方法?

int x = 0;
int y = 0;
 Graphics g = getGraphics(); // get Graphics context
                  g.setColor(Color.red);
          g.fillRect( x - 25, y - 15, 60, 30 );
          g.setColor(Color.black);
          g.drawRect( x - 25, y - 15, 60, 30 );
                  g.dispose();

我可能會使用JPanel作為構成畫布的較大組件的子元素。 由於JPanel是JComponent的子類,因此它既可以通過addMouseListener()添加鼠標偵聽器,也可以覆蓋其paintComponent ()方法。

如果要移動正方形,只需重新定位JPanel。

(為此,如果它是正方形或矩形,則您甚至不需要覆蓋paintComponent,只需對setBorder和setBackground進行適當的調用即可完成此操作。)


另一種方法是使用JPanel作為整個畫布,覆蓋paintComponent以繪制所需的內容,在JPanel上添加addMouseListener,然后手動確定鼠標偵聽器事件是否在圖形元素的幾何內發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM