如何获取Java应用程序的鼠标位置?
我需要在Java应用程序上找到一个特定的像素位置。这个Java应用程序可以被窗口化或最大化如何获取Java应用程序的鼠标位置?,java,swing,awt,Java,Swing,Awt,我需要在Java应用程序上找到一个特定的像素位置。这个Java应用程序可以被窗口化或最大化 我的代码不知何故不返回整数。当hello消息发出时,此事件确实会触发。关键是您必须向组件添加一个,该组件将报告单击位置: documentDOM.addEventListener("click", new EventListener() { public void handleEvent(Event evt) {
我的代码不知何故不返回整数。当hello消息发出时,此事件确实会触发。关键是您必须向组件添加一个,该组件将报告单击位置:
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);
您必须在组件上添加一个
鼠标侦听器
,以侦听组件上的鼠标事件
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);
}
}
//http://www.geekssay.com/java-program-to-get-mouse-coordinates/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class TestInner {
private JFrame f;
private JTextField tf;
public TestInner () {
f = new JFrame ("Inner classes example");
tf = new JTextField(30);
}
class MyMouseMotionListener extends MouseMotionAdapter {
public void mouseDragged(MouseEvent e) {
String s = "Mouse dragging: X = "+ e.getX()
+ " Y = " + e.getY();
tf.setText(s);
}
}
public void launchFrame() {
JLabel label = new JLabel("Click and drag the mouse");
// add componers to the frame
f.add(label, BorderLayout.NORTH);
f.add(tf, BorderLayout.SOUTH);
// Add a listener that uses an Inner class
f.addMouseMotionListener(new MyMouseMotionListener());
f.addMouseListener(new MouseClickHandler());
// Size the frame and make it visible
f.setSize(300, 200);
f.setVisible(true);
}
public static void main(String args[]) {
TestInner obj = new TestInner();
obj.launchFrame();
}
}
class MouseClickHandler extends MouseAdapter {
// We just need the mouseClick handler, so we use
// an adapter to avoid having to write all the
// event handler methods
public void mouseClicked(MouseEvent e) {
// Do stuff with the mouse click...
}
}