У меня странная ситуация: когда я начиная некоторые Java приложения на удаленном компьютере через Putty + Xming - и если 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
}
});
При запуске - unecorated JFrame
получает фокус, но если он щелкнут где-то - фокус потерян, а противоположное окно будет null
. Затем он снова не фокусируется. Проблема не существует, если setUndecorated(false)
- когда JFrame
оформлен.
Это ошибка программного обеспечения Xming. Загруженный MobaXterm - и теперь все отлично работает даже с незадекларированными JFrames. Также попробовал сервер Putty + X11 MobaXterm - работает хорошо. Это доказывает, что Xming здесь проблема.