Xming:为什么JFrame在setUndecorated(true)时失去焦点?

时间:2014-03-15 16:10:15

标签: java focus putty jwindow xming

我有一些奇怪的情况:当我通过Putty + Xming在远程计算机上启动一些java应用程序时 - 如果JFramesetUndecorated(true) - 如果它丢失则无法再次获得焦点:

jFrame.setUndecorated(true);

jFrame.addWindowFocusListener(new WindowFocusListener(){

            @Override
            public void windowGainedFocus(WindowEvent e) {
               System.out.println("Window gained focus");
            }

            @Override
            public void windowLostFocus(WindowEvent e) {
               System.out.println("Window lost focus " + e.getOppositeWindow());//e.getOppositeWindow is null
            }

});

启动时 - 未修饰JFrame获得焦点,但如果在某处单击,则焦点将丢失,相反的窗口为null。然后它永远不会再获得焦点。如果setUndecorated(false) - 装饰JFrame时,问题就不存在了。

1 个答案:

答案 0 :(得分:2)

这是Xming软件的错误。下载的MobaXterm - 即使使用未修饰的JFrame,现在一切正常。还试过Putty + X11 MobaXterm服务器 - 效果很好。这证明了Xming在这里是个问题。