鼠标相对于Frame的坐标

时间:2011-11-04 19:36:49

标签: java swing mouse coordinates awt

我正在尝试绘制多边形,并希望能够单击我的框架以获取MouseCoordinates,以便更快地将mental Image转换为x / y值。

我正在使用

System.out.println("("+ MouseInfo.getPointerInfo().getLocation().x +",
    "+ MouseInfo.getPointerInfo().getLocation().y +")"); 

但这给了我相对于我的实际屏幕的坐标,而不是我的java窗口。

如何使坐标相对于Java窗口显示?

2 个答案:

答案 0 :(得分:13)

您可以使用SwingUtilties

在屏幕和组件坐标之间进行转换

convertPointFromScreen方法将采用屏幕坐标并将其转换为相对于您提供的组件。

答案 1 :(得分:5)

我想你在你的框架中添加一个MouseListener?然后你可以通过MouseEvent.getPoint

获得相对坐标
frame.addMouseListener(new MouseAdapter() {
    void mouseClicked(MouseEvent e) {
        System.out.println(e.getPoint());
    }
});