Java中的AWTEventListener永久存在于JFrame之外

时间:2014-12-27 10:32:05

标签: java swing jframe mouseevent mouselistener

看起来非常简单,但无法找到如何在JFrame外捕获鼠标操作!永久!,机器人只需首先点击或定位。

我有这段代码:

Button btnAllowRect = new Button("Make rectangles");
    btnAllowRect.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) { 
            frame.setExtendedState(JFrame.HIDE_ON_CLOSE);
            Toolkit.getDefaultToolkit().addAWTEventListener(
                      new DrawRect(), AWTEvent.MOUSE_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK);
        }
    });
    btnAllowRect.setBounds(200, 38, 110, 22);
    contentPane.add(btnAllowRect);

并覆盖方法

@Override
    public void eventDispatched(AWTEvent event) {

        System.out.print(MouseInfo.getPointerInfo().getLocation() + " | ");
        System.out.println(event);
        switch(event.getID()){
        case MouseEvent.MOUSE_PRESSED & FocusEvent.FOCUS_LOST:
            System.out.print(MouseInfo.getPointerInfo().getLocation() + " | ");
            System.out.println(event);
            break;
        case MouseEvent.MOUSE_RELEASED & FocusEvent.FOCUS_LOST:
            System.out.print(MouseInfo.getPointerInfo().getLocation() + " | ");
            System.out.println(event);
            break;
        default:
            break;
        }
    }

我需要知道按下鼠标时的坐标以及何时一直在窗外释放。 此代码允许我只捕获JFrame外的第一次单击。鼠标按下和释放时如何获取坐标?谢谢!

0 个答案:

没有答案