1
A
回答
0
註冊MouseListener並執行相應的事件。 MouseEvent具有可以給你鼠標位置的getX和getY方法。
1
getBounds()
爲您提供了相對於其父按鈕的位置和尺寸的Rectangle
。在我的例子中,父母是JFrame
。
public class Click {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
final JFrame f = new JFrame("Click pos");
f.setSize(640, 480);
final JButton b = new JButton("Click Me!");
b.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
final JButton bb = (JButton) e.getSource();
final Rectangle bbox = bb.getBounds();
final int x = bbox.x + e.getX();
final int y = bbox.y + e.getY();
JOptionPane.showMessageDialog(f, "pos: " + x + " " + y);
}
});
f.getContentPane().add(b, BorderLayout.SOUTH);
f.setVisible(true);
}
});
}
}
編輯:
隨着輔助方法從SwingUtilities類的mouseClicked
方法獲取簡單得多。你會得到正確的座標獨立的多少容器是JFrame
和JButton
之間。我沒有意識到他們。
final JButton bb = (JButton) e.getSource();
Point p = SwingUtilities.convertPoint(bb, e.getPoint(), f);
JOptionPane.showMessageDialog(f, p);
相關問題
- 1. 相對於框架的鼠標座標
- 2. 在javascript中獲取相對鼠標X/Y
- 3. 獲取相對於元素的鼠標指針的x和y位置
- 4. 如何獲得x,y位置的鼠標點擊框架?
- 5. 獲取在MFC CListBox項目上鼠標單擊的相對X/Y
- 6. Flex Datagrid - 如何獲取鼠標x/y座標的項目?
- 7. Three.js - 獲取鼠標點擊的X,Y和Z座標
- 8. 用鼠標點擊獲取X/Y座標
- 9. 如何獲取TWinControl的X,Y位置(相對於屏幕)
- 10. 處理兩個標準::對(X,Y)相同的std ::對(Y,X)
- 11. 在鼠標指針下獲取X和Y值
- 12. 獲取鼠標座標相對於Qt的OpenGL的部件
- 13. 如何獲取x,y座標
- 14. Javascript:獲取鼠標相對於父元素的位置
- 15. 獲取相對於可滾動網格的鼠標位置
- 16. 獲取相對於鼠標的縮放產生的偏移量
- 17. 獲取鼠標相對於元素內容區域的位置
- 18. 相對於控件獲取鼠標位置
- 19. 試圖獲得鼠標單擊x和y位置的準確值 - 獲取NaN
- 20. 在ImageView touch上獲取X/Y座標
- 21. 獲取X Y座標w.r.t圖像
- 22. 在JLabel中的圖像上單擊時獲取鼠標的X和Y位置
- 23. 即使點擊另一個控件,我怎樣才能獲得鼠標相對於窗體的X,Y位置?
- 24. 獲取鼠標座標相對於jQuery對話窗口而不是視口?
- 25. 獲取X和Y座標視圖
- 26. 從列表中獲取(x,y)座標
- 27. 從CvPoint獲取X Y座標
- 28. 從框架中獲取鼠標單擊的座標
- 29. 當我點擊scala時如何獲得鼠標「x」和「y」
- 30. libGDX X和Y鼠標輸入
是的,但是當我在按鈕是JFrame中不會觸發該事件 – xdevel2000 2010-09-17 10:24:18
嘗試該按鈕的事件監聽器在這個代碼: PointerInfo A = MouseInfo.getPointerInfo(); Point b = a.getLocation(); INT X =(int)的b.getX(); int y =(int)b.getY(); – 2010-09-17 10:36:00
不,它給我相對於按鈕不幀的COORDS! – xdevel2000 2010-09-17 10:44:26