2013-08-12 1 views
0

У меня действительно есть проблемы с тем, чтобы мой JFrame был на фронте, когда я его назову.Java JFrame to Front

У меня есть класс наследования от JDialog. Он появляется, когда я запускаю свою очень крутую игру в java. если я сейчас, например, хочу загрузить игру, я нажимаю кнопку загрузки, а другой JDialog открывается, чтобы выбрать игру для загрузки. Итак, теперь я должен открыть JDialogs => Диалог запуска и диалог загрузки. ok, когда я закрыл игру и загрузил ее, нагрузка jdialog удаляет JFrame для загруженной игры, и после этого стартовый jdialog снова возвращается к .

Я не хочу, чтобы диалоговое окно запуска приходилось на фронт!

я уже добавил следующее codeline к моей JFrame для игры:

this.toFront() 

без какого-либо эффекта.

Как я могу получить JFrame на фронт?

+0

Действительно ли ваш запуск JDialog является модальным? Если да, то это будет всегда на фронте. Я думаю, что использование другого 'JFrame' вместо' JDialog' решит вашу проблему. – NiziL

+0

Не модально! jdialog просто выскакивает назад по jframe после появления jframe. – user2663778

ответ

1

JDialog объекты должны оставаться на вершине и будет иметь приоритет над любыми другими кадрами, но если вы хотите отключить, что вы можете использовать следующие функции:

jDialog.setAlwaysOnTop(false); 

Вы можете затем вызвать следующую функцию на вашем JFrame:

this.toFront(); 
0

Ну, если вы пытаетесь открыть JFrame на события нажатия кнопки загрузки, вы должны попробовать следующий код на его обработчик событий

JFrame o = new JFrame(); 
    o.setVisible(true); 
    dispose(); 
+0

Я не хочу, чтобы вызывающий компонент был утилизирован! он должен оставаться открытым, но за новым JFrame! – user2663778

+0

Тогда вы могли бы переключить его видимость. – Malwaregeek

0

Я думаю, что вы имеете в виду, что вы не можете взаимодействовать с вашим JFrame больше, потому что Dialog блокирует его. Я не знаю теперь, что делает ваш диалог запуска, но вы можете поместить это в JPanel или новый JFrame!

Если вы используете

JOptionPane.showMessageDialog(); 

вы не можете взаимодействовать с JFrame больше, сначала нужно закрыть диалоговое окно.

Сделайте JPanel и JFrame и поместите то, что у вас есть в диалоговом окне вашей JPanel, и откройте новый кадр, если вы нажмете на кнопку startbutton.

+0

Нет! Я не использую JOptionPane, я написал свои собственные JDialogs, и они не являются модальными! JFrame не заблокирован! JDialog просто выскакивает над JFrame, и это очень неудобно для пользователя, чтобы переключиться обратно на кадр вручную – user2663778