【问题标题】:How to check if the mouse is pressed out of an JFrame如何检查鼠标是否被按出 JFrame
【发布时间】:2014-02-01 20:32:12
【问题描述】:

现在我正在使用 MouseListener 来查看鼠标是否被按下,但是当您在 JFrame 外部按下时它没有注册我真的需要它,那么如何检查 JFrame 外部的鼠标事件?

【问题讨论】:

    标签: java swing input jframe mouse-listeners


    【解决方案1】:

    现在我正在使用 MouseListener 来查看鼠标是否被按下 但是当您在 JFrame 之外按时它不会注册我会 真的需要它,所以我如何检查 a 之外的鼠标事件 框架?

    • 那么JFrame丢了Focus,可以用WindowFocusListener测试

    • 焦点是异步的,那么windowGainedFocuswindowLostFocus里面的所有东西都应该被包裹到invokeLater

    【讨论】:

    • 谢谢我忘记了失去焦点。这并不是我真正要求的,而是按照我的意愿去做,而且可能会比其他任何事情都容易。
    【解决方案2】:

    添加窗口监听器

    addWindowListener(new WindowListener() {
    
            @Override
            public void windowOpened(WindowEvent arg0) {
    
    
            }
    
            @Override
            public void windowIconified(WindowEvent arg0) {
    
    
            }
    
            @Override
            public void windowDeiconified(WindowEvent arg0) {
    
    
            }
    
            @Override
            public void windowDeactivated(WindowEvent arg0) {
    
    
            }
    
            @Override
            public void windowClosing(WindowEvent arg0) {
    
            }
    
            @Override
            public void windowClosed(WindowEvent arg0) {
    
            }
    
            @Override
            public void windowActivated(WindowEvent arg0) {
    
    
            }
        });
    

    尝试所有方法(窗口...),看看哪一种最适合您! :) 我不会告诉你具体该怎么做,因为要学习你不能只是复制粘贴!

    【讨论】:

    • 这是您第二次建议 op 将 MouseListener 添加到他们的应用程序中,尽管两次都表示他们已经在使用一个...
    【解决方案3】:

    要知道鼠标在窗口外的状态可以使用:

    Point point = MouseInfo.getPointerInfo().getLocation();
    

    不幸的是,java.awt.event.MouseMotionListener 为您提供了有关鼠标在窗口内移动的信息。

    【讨论】:

    • 我想知道鼠标是否被按下而不是它所在的位置,但还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多