У меня есть код, который выглядит примерно так, что делает мой полноэкранный режим JFrame:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
JFrame myFrame = new JFrame("Title", device);
myFrame.setVisible(true);
myFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
myFrame.setUndecorated(true);
myFrame.setResizable(false);
myFrame.validate();
device.setFullScreenWindow(myFrame);
Как позже я получаю тот же JFrame, чтобы перестать быть полноэкранным и вернуться к тому, чтобы быть обычным окном? Я не вижу никакой противоположности методу setFullScreenWindow
в классе GraphicsDevice. Я хотел бы иметь возможность переключаться туда и обратно по мере необходимости.
Используйте setFullScreenWindow(null);
а затем вызовите myFrame.setVisible(true);
IllegalComponentStateException
которомIllegalComponentStateException
чтоThe frame is displayable
в строке, где я вызываюsetUndecorated(true)
. Любые идеи о том, как исправить этот код выше, чтобы он заработал?setExtendedState()
илиmyFrame.validate()
; они не нужны для полноэкранного окна.