Ява свинг. Как ждать других Jframes

В JFrame, когда я нажимаю «войти», я открываю другой Jframe, который является окном входа в систему.

Как заставить мой основной Jframe ждать завершения входа в систему, прежде чем делать что-либо еще?

 mtvee28 нояб. 2009 г., 09:54
Можем ли мы предположить, что есть причина, по которой вы не вводите логин в модальное диалоговое окно?

Ответы на вопрос(3)

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

Как заставить один JFrame ждать другого JFrame?

Я бы сказал, что самый простой способ добиться этого - зарегистрировать и запустить слушателей событий.

В вашем «дочернем» фрейме зарегистрируйте «основной» фрейм как прослушиватель событий.В вашем "основном" кадре,реализовать ваш выбор слушателя, например,ActionListenerв методе, вызываемом слушателем, например,actionPerformedзакодируйте логику, которая обрабатывает то, что происходит при каждом из действий, на которые он может реагировать, в «дочернем» фрейме.

Можно легко реализовать это в любом количестве ситуаций, включая сценарий входа в систему, описанный в вопросе.

Решение Вопроса

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

видетьhttp://mindprod.com/jgloss/modal.html для объяснения и посмотретьhttp://www.java2s.com/Tutorial/Java/0240__Swing/ASimpleModalDialog.htm для примера кода

Если вы настаиваете на использовании JFrame, вы можете использовать обходной путь, накрыв другой кадр стеклянным каркасом. Признаюсь, это не слишком хорошее решение.

 rogerdpack19 нояб. 2010 г., 14:21
обратите внимание, что если вы используете JModal, вы должны вызвать его конструктор с "true", чтобы он не мог активировать родительский элемент до его закрытия, как новый MyClass (this, true)
 Peter Perháč28 нояб. 2009 г., 12:23
@Andreas_D, поменяй свой комментарий на ответ, и я дам тебе голос
 Andreas_D28 нояб. 2009 г., 10:24
Модальность доступна только для классов, которые подкласс java.awt.Dialog (например, javax.swing.JDialog), классы, которые подкласс просто java.awt.Window не может быть моделью.
 Peter28 нояб. 2009 г., 10:14
Не то, чтобы я знал, но мои качели очень ржавые, это были годы, поэтому не верьте мне в этом
 Peter Perháč28 нояб. 2009 г., 10:09
Я бы посоветовал то же самое, но, тем не менее, не могли бы вы предложить, как можно сделать ЛЮБОЙ JFrame модальным? Я родом из мира Delphi, и там можно было бы назвать myForm.showModal; вместо просто myForm.show; Есть ли простой способ добиться этого эффекта?

JModalFrame вместо JFrame.

 Ian Durkan01 февр. 2011 г., 18:11
JModalFrame не является частью стандартного Swing API.
 Dany17 февр. 2011 г., 15:02
Вы можете найти это вjmodalwindow.java.net

Ваш ответ на вопрос