ждать jdialog в немодальном режиме - PullRequest
1 голос
/ 06 сентября 2010

У меня есть JFrame, и когда пользователь нажимает кнопку, отображается ввод jdialog. Мне нужно, чтобы jdialog был в немодальном режиме, и как только пользователь нажмет ОК, Я хочу сделать некоторые действия, основанные на входе. Прямо сейчас я передаю свое представление как ссылку в jdialog, так что когда пользователь нажимает ОК, jdialog вызывает метод зрения. Есть ли более стандартизированный способ справиться с этим или это единственный способ? Мне нужно, чтобы jdialog был в не-модальном режиме

Спасибо

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Ваш текущий подход с использованием обратного вызова прост, но шаблон наблюдателя обычно используется для уменьшения результирующей тесной связи.В Swing типичны две реализации:

  1. Организовать для вашего представления реализацию интерфейса Observer и делегирование окна ввода для отдельного экземпляра Observable.Метод notifyObservers() может использоваться для передачи ссылки на объект в Observer.Очень простой пример может быть найден здесь .

  2. Ваше окно ввода поддерживает EventListenerList, используя пользовательское событие, в котором представлениерегистрирует интерес.Данные, представляющие интерес для слушателя, могут быть переданы в самом событии.Может быть удобно повторно использовать существующее javax.swing.event или моделировать пользовательское событие для такого типа.Каждый JComponent содержит EventListenerList.

1 голос
/ 06 сентября 2010

Вы можете передать java.lang.Runnable для вызова из JDialog, когда пользователь нажимает кнопку ОК. Таким образом вы можете поместить код, который хотите запустить, внутри самого Runnable.

...