Более простая альтернатива JFrames (на весь экран)? - PullRequest
1 голос
/ 16 августа 2011

Прямо сейчас у меня есть полноэкранное приложение, которое порождает несколько полноэкранных 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, и знаете, как легко переключать фокус / вид, пожалуйста, дайте мне знать. Это также будет ответом на мою проблему.

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Я решил использовать cardLayout и немного изменить свой код.

1 голос
/ 16 августа 2011

Я не вижу ваш звонок для установки экрана в полноэкранный режим?

http://download.oracle.com/javase/tutorial/extra/fullscreen/exclusivemode.html

...