如题,大家都知道addMouseListener()可以添加鼠标事件,但是事件源一般都是某个窗体,但我想实现一个可以给整个windows注册这个事件,该怎么实现,请各位大哥帮帮忙

解决方案 »

  1.   

    如果只是 java图形界面程序
    Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
        public void eventDispacthed(AWTEvent e){
            ......
        }
    },
    AWTEvent.MOUSE_EVENT_MASK);
      

  2.   

    其实我刚刚也想了一个解决方法,就是不断截当前屏幕的图,然后定义一个与屏幕分辨率相同大小的Window,不断的去设置它的背景。在这个Window上添加鼠标移动事件。再根据Robot获取该鼠标位置的颜色。不过这样太麻烦了
      

  3.   

    我是这样写的:public void eventDispatched(AWTEvent event) {
    // TODO Auto-generated method stub
    System.out.println("here");
    MouseEvent e = (MouseEvent)event;
    System.out.println(e.getX());
    }
    },
    AWTEvent.MOUSE_EVENT_MASK);现在出现了点问题只在我鼠标移出窗口的一瞬间输出了,然后不管你怎么移动都不行?能给点详细代码吗?谢谢了
      

  4.   

    楼主说的是指当鼠标在 JFrame 外面的时候
    还要可以响应事件?2楼那个方法其实是用于集中处理容器中处理所有控件,
    包括所有控件的子控件(子控件的子控件,……)的事件的一种方案貌似和你的需求有点区别
    你的这个需求貌似真的要弄一个和窗体一样大的半透明窗体才行了
      

  5.   

    我知道了,刚刚网上找了找这个方法,说的是捕获java的全局事件而不是windows的或其他软件发生的事件。看来这能用我那个笨办法或JNI了。