Я думаю, что ваша проблема здесь:
try {
gd.setFullScreenWindow(this);
}
finally {
gd.setFullScreenWindow(null);
}
finally
блоки выполняются всегда, поэтому в данном случае ваше окно на короткое мгновение становится полноэкранным (если это так), а затем немедленно покидает экран.
Кроме того, setVisible(true)
не требуется, если вы ранее звонили setFullScreenWindow(this)
, согласно Javadocs .
Так что я бы изменил конструктор на это:
public FullScreenFrame() {
addKeyListener(this);
GraphicsDevice gd =
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
if (gd.isFullScreenSupported()) {
setUndecorated(true);
gd.setFullScreenWindow(this);
} else {
System.err.println("Full screen not supported");
setSize(100, 100); // just something to let you see the window
setVisible(true);
}
}