Прямо сейчас у меня есть полноэкранное приложение, которое порождает несколько полноэкранных JFrames на основе файла конфигурации (поэтому я никогда не могу точно предсказать, сколько у меня будет кадров). Эти JFrames находятся в полноэкранном режиме, например:
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setUndecorated(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
Проблема в том, что эти JFrames плохо себя ведут в среде Linux. Я много боролся с requestFocus
, requestFocusInWindow
, toFront
, setVisible
и т. Д. Но, похоже, ничто не может заставить его работать должным образом в Linux. Проблема заключается в том, что у меня есть несколько фреймов, и мне нужно иметь возможность переключаться между ними, когда я нажимаю на кнопку (это в основном меню).
Итак, я начинаю думать, что JFrame не лучший объект для использования. Было бы проще управлять несколькими кадрами, если бы они были, скажем, optionPanes? Или что-то подобное? Каким бы ни было решение, мне нужно уметь DO_NOTHING_ON_CLOSE
и setUndecorated
(или что-то подобное).
Примечание: Если вы не видите причин, по которым мне нужно изменить свой JFrame, и знаете, как легко переключать фокус / вид, пожалуйста, дайте мне знать. Это также будет ответом на мою проблему.