如何获取Java应用程序的鼠标位置?

KJW*_*KJW 2 java swing awt

documentDOM.addEventListener("click", new EventListener() {
                            public void handleEvent(Event evt) {

                                if (evt.getType().equals("click")) {
                                    System.out.println("hello");
                                    MouseEvent mouseIvent = (MouseEvent) evt;
                                    int screenX = mouseIvent.getXOnScreen();
                                    int screenY = mouseIvent.getYOnScreen();
                                    System.out.println("screen(X,Y) = " + screenX + "\t" + screenY);
                               }
                            }
                        }, true);
Run Code Online (Sandbox Code Playgroud)

我需要在 Java 应用程序上找到特定的像素位置。该Java应用程序可以是窗口化的或最大化的窗口。

我的代码不知何故不返回整数。当 hello 消息被吐出时,这个事件就会触发。

mae*_*ics 5

关键是您必须向组件添加一个MouseListener,它将报告单击位置:

public class LocationPrinter extends MouseAdapter {
  public static void main(String args[]) {
    JPanel panel = new JPanel();
    panel.setPreferredSize(new Dimension(300, 200));
    panel.addMouseListener(new LocationPrinter());
    JFrame frame = new JFrame("Location Window");
    frame.getContentPane().add(panel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
  }
  @Override
  public void mouseClicked(MouseEvent me) {
    int screenX = me.getXOnScreen();
    int screenY = me.getYOnScreen();
    System.out.println("screen(X,Y) = " + screenX + "," + screenY);
  }
}
Run Code Online (Sandbox Code Playgroud)