相对于Jframe,在java中不断获取鼠标位置

时间:2017-03-28 07:56:34

标签: java jframe mouseevent mouse mouselistener

我正在创建一个Java应用程序,我需要让每一帧都相对于我的Jframe的鼠标位置。 我正在编写一个从MouseAdapter扩展的类,但在需要时我无法访问MouseEvent。

感谢。

1 个答案:

答案 0 :(得分:1)

使用Swing Timer: 打印到JFrame左上边缘的相对距离。

public static void main(String[] args) {
    JFrame frame = new JFrame("Frame");
    frame.setSize(500, 500);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setResizable(false);
    frame.setVisible(true);

    Timer timer = new Timer(66, new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            Point p = MouseInfo.getPointerInfo().getLocation();
            p = new Point(p.x - frame.getLocation().x, p.y - frame.getLocation().y);
            System.out.println("Mouse: " + p);

        }
    });
    timer.start();

}