Java 在 Gui 上单击时获取鼠标位置
Java get mouse position on click on Gui
我想在单击摇摆 window 本身时获取鼠标位置,而不是在 eclipse 的控制台上。谁能知道该怎么做?如果这是一个明显的问题,我很抱歉,我是初学者。提前致谢。
这是我得到的代码。我不知何故在这里找到了一块,但它并没有像我想要的那样真正帮助我。
package shapes;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class mouse {
public static void main(String[] args){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.add(panel);
panel.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int x=e.getX();
int y=e.getY();
System.out.println(x+","+y);
}
}); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200); frame.setVisible(true);
}
}
查看PointerInfoclass,它可以帮助你。
您可以将位置打印到 JLabel
:
JLabel label = new JLabel();
panel.add(label);
panel.setLayout(null);
frame.add(panel);
panel.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
label.setText("X: "+x+" \t Y: "+y); // this sets the JLabel's text
label.setBounds(x, y, label.getText().length()*2, 20);
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
结果:
我想在单击摇摆 window 本身时获取鼠标位置,而不是在 eclipse 的控制台上。谁能知道该怎么做?如果这是一个明显的问题,我很抱歉,我是初学者。提前致谢。
这是我得到的代码。我不知何故在这里找到了一块,但它并没有像我想要的那样真正帮助我。
package shapes;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class mouse {
public static void main(String[] args){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.add(panel);
panel.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int x=e.getX();
int y=e.getY();
System.out.println(x+","+y);
}
}); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200); frame.setVisible(true);
}
}
查看PointerInfoclass,它可以帮助你。
您可以将位置打印到 JLabel
:
JLabel label = new JLabel();
panel.add(label);
panel.setLayout(null);
frame.add(panel);
panel.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
label.setText("X: "+x+" \t Y: "+y); // this sets the JLabel's text
label.setBounds(x, y, label.getText().length()*2, 20);
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
结果: