在摇摆中检测焦点(帧+组件)

kaz*_*zoo 3 java swing focus

我出现了一个小的对话框,在这个框架内有一系列按钮和一个文本框.我需要框架能够检测到用户何时将焦点放在屏幕上的其他内容上(除了框架及其组件之外的任何东西),因此我可以关闭框架.关于如何解决这个问题的任何建议?我一直在尝试聚焦解决方案几个小时,没有解决方案!

Aar*_*ron 5

尝试使用WindowStateListener

它提供的WindowEvent参数可以告诉您窗口是否通过getNewState()方法失去焦点.

class MyFocusLostListener implements WindowStateListener {

    public void windowStateChanged(WindowEvent e) {
        if (e.getNewState() == WindowEvent.WINDOW_LOST_FOCUS) {
            e.getWindow().setVisible(false);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)