我有一个jwindow(设置为始终位于顶部),您可以单击以获取弹出菜单。如果用户右键单击该窗口,它将显示弹出菜单,但是如果用户单击任何其他窗口(例如firefox),则弹出菜单不会消失。

我试图通过在jwindow上添加FocusListener来修复它,我实现了FocusListener并覆盖


    public void focusGained(FocusEvent e) {
    System.out.println("gain" );
    }

    public void focusLost(FocusEvent e) {
    System.out.println("lost" );
    }

但是那里的事件永远不会被召唤。我也尝试了以下

    addWindowFocusListener(new WindowAdapter() {
        public void windowGainedFocus(WindowEvent e) {
            System.out.println("gain 2" );
        }
        });

此事件也未调用。

所有这些jwindows都只有一个JLabel,上面有一张图片。

最佳答案

从内存JWindow不会接收焦点/窗口事件。

10-08 01:39