gpt4 book ai didi

java - 获取相对于框架的鼠标 X,Y 坐标

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:11 25 4
gpt4 key购买 nike

我有一个按钮,当我在按钮上使用鼠标时,我想知道鼠标相对于框架的 x,y 坐标

我怎样才能做到这一点?

最佳答案

getBounds() 为您提供一个矩形,其中包含按钮相对于其父级的位置和尺寸。在我的示例中,父级是 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 方法变得更加简单。无论 JFrameJButton 之间有多少个容器,您都可以获得正确的坐标。我不知道他们。

                    final JButton bb = (JButton) e.getSource();
Point p = SwingUtilities.convertPoint(bb, e.getPoint(), f);
JOptionPane.showMessageDialog(f, p);

关于java - 获取相对于框架的鼠标 X,Y 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3734424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com