我有一些奇怪的情况:当我通过Putty + Xming在远程计算机上启动一些java应用程序时 - 如果JFrame
是setUndecorated(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
时,问题就不存在了。
答案 0 :(得分:2)
这是Xming软件的错误。下载的MobaXterm - 即使使用未修饰的JFrame,现在一切正常。还试过Putty + X11 MobaXterm服务器 - 效果很好。这证明了Xming在这里是个问题。