要取得鼠标点击位置(相对与应用程序),可以直接调用鼠标事件机制中的方法,写了一个参考代码: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之类的方法即可.

解决方案 »

  1.   

    e.getX();  //取得x坐标
    e.getY();  //取得y坐标
      

  2.   

    jellen(类痴狂人) 写出了普通的做法.当鼠标在Frame 之外时,就不行了.
      

  3.   

    e.getX();  //取得x坐标
    e.getY();  //取得y坐标注:用这种方法取得的坐标是以监听事件的组件的左上角为原点的坐标值。
      

  4.   

    问题并没有得到解决.  要知道当鼠标点到Frame 之外时,将会发现应用程序切换.
    当前Frame 处于暂时不活动状态
      

  5.   

    点到 Frame 之外时应该要使用 win32 API 了吧!
      

  6.   

    可以把屏幕尺寸设置到最大
    然后就可以使用上面的那段程序了,下面偶来改进一下
    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);
      }
      

  7.   

    如果要想得到在焦点窗口以外的鼠标的位置的话要用Windows的钩子在程序初始化的地方添加一个钩子就可以了