如何设置鼠标点击事件?

How to set mouseClicked event?

我正在尝试编写一个程序,在我单击鼠标左键时显示 x 和 y 坐标,但它不起作用。如果我 运行 程序,控制台会自动显示 x 和 y 坐标,但我想在单击鼠标后查看坐标。

import java.awt.*;
import java.awt.event.*;
import javax.swing.SwingUtilities;

public class Simple {
    public static void main(String[] args){
        Mouse maus = new Mouse();
        maus.mouseClicked(null);
    }
}

第二个文件

import java.awt.*;
import java.awt.event.*;

public class Mouse implements MouseListener {
     public void mouseClicked(MouseEvent e) { 
         double mouseX = MouseInfo.getPointerInfo().getLocation().getX();
         double mouseY = MouseInfo.getPointerInfo().getLocation().getY();
         System.out.println(mouseX+"   "+mouseY);
    }
    @Override
    public void mouseEntered(MouseEvent arg0) {}

    @Override
    public void mouseExited(MouseEvent arg0) {}

    @Override
    public void mousePressed(MouseEvent arg0) {}

    @Override
    public void mouseReleased(MouseEvent arg0) {}   
}

您在代码中所做的是编写一个 MouseListener,但不是将其添加到 GUI 组件(因此单击鼠标时它会被激活),而是您自己调用它。这就是为什么它会在您启动程序时执行。

您需要做的是在您的 GUI 组件之一上使用 addMouseListener 方法,并向其注册您的侦听器。

有一个很好的指南here,也有例子。