У меня странная ситуация: когда я запускаю какое-то 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
}
});
При запуске - недекорированное JFrame
получает фокус, но если его куда-то нажать - фокус теряется и напротив окно null
. Тогда он больше никогда не будет фокусироваться. Проблема не существует, если setUndecorated(false)
- когда JFrame
украшено.