要取得鼠标点击位置(相对与应用程序),可以直接调用鼠标事件机制中的方法,写了一个参考代码:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class MyFrame extends JFrame {
public MyFrame() {
setTitle("Test");
setSize(400, 300); addMouseListener(new MouseHandler());
} private class MouseHandler extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
int x = e.getX(); //取得x坐标
int y = e.getY(); //取得y坐标 String msg = "x = " + x + ", y = " + y;
JOptionPane.showMessageDialog(MyFrame.this, msg);
}
}
}
public class Test {
public static void main(String[] args) {
JFrame jellen = new MyFrame();
jellen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jellen.setVisible(true);
}
}
如果要得到相对于屏幕的位置,那你必须先得到应用程序的左上角位置,然后加上上面的x, y. 很简单的了, 用getBounds之类的方法即可.
import java.awt.event.*;
import javax.swing.*;class MyFrame extends JFrame {
public MyFrame() {
setTitle("Test");
setSize(400, 300); addMouseListener(new MouseHandler());
} private class MouseHandler extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
int x = e.getX(); //取得x坐标
int y = e.getY(); //取得y坐标 String msg = "x = " + x + ", y = " + y;
JOptionPane.showMessageDialog(MyFrame.this, msg);
}
}
}
public class Test {
public static void main(String[] args) {
JFrame jellen = new MyFrame();
jellen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jellen.setVisible(true);
}
}
如果要得到相对于屏幕的位置,那你必须先得到应用程序的左上角位置,然后加上上面的x, y. 很简单的了, 用getBounds之类的方法即可.
e.getY(); //取得y坐标
e.getY(); //取得y坐标注:用这种方法取得的坐标是以监听事件的组件的左上角为原点的坐标值。
当前Frame 处于暂时不活动状态
然后就可以使用上面的那段程序了,下面偶来改进一下
public class Test {
public static void main(String[] args) {
JFrame jellen = new MyFrame();
jellen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jellen.setExtendedState(Frame.MAXIMIZED_BOTH);//这句是新加上去的,其他不变
jellen.setVisible(true);
}