gpt4 book ai didi

java - 获取面板坐标

转载 作者:行者123 更新时间:2023-12-02 04:49:13 25 4
gpt4 key购买 nike

使用 mouseevents,我能够获取框架的 x 和 y 坐标,但无法获取面板的 x 和 y 坐标。下面的代码是我获取框架的 x 和 y 坐标。

public void mouseMoved(MouseEvent e) {
x = e.getX();
y = e.getY();
text = Integer.toString(x) +","+Integer.toString(y);

Frame.frame.repaint();

}

下面的代码是我试图获取面板的 x 和 y 坐标,但它画出了 0。 Paint.paint 是我的 jpanel 的名称。我不知道我做错了什么。如果可以的话请帮忙。

public void mouseMoved(MouseEvent e) {
x = Paint.paint.getX();
y = Paint.paint.getY();
text = Integer.toString(x) +","+Integer.toString(y);

Frame.frame.repaint();

}

最佳答案

如果我理解正确,您的 MouseListener 已在 JFrame 中注册,并且您希望获取相对于 JFrame 中包含的 JPanel 的 x/y。 MouseEvent 中的 x 和 y 指的是注册 MouseListener 的组件。如果您在父容器上注册了 MouseListener,并且要获取 MouseEvent 相对于子组件的坐标,则可以使用 SwingUtilities 来转换坐标

public void mousePressed(MouseEvent e){
Point childCoordinate = SwingUtilities.convertPoint(parent, e.getPoint(), child);
}

关于java - 获取面板坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29397358/

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