[英]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.