JOptionPane против JDialog - PullRequest
       15

JOptionPane против JDialog

5 голосов
/ 17 февраля 2012

Это кросспост к ветке в Javaranch (включает в себя несколько изображений): http://www.coderanch.com/t/567472/GUI/java/Optimal-solution-creating-multiple-dialog

Я пытаюсь разработать простое приложение Swing для настольных компьютеров, где я представляю множество различных диалоговых прыжков вокругполучить пользовательский ввод.Необходимо будет представить метки, текстовые поля, поля паролей, поля со списком, флажки и т. Д. В различных диалоговых окнах.

Например: создание базы данных из первых рук, создание первой учетной записи администратора, добавление пользователей, изменение учетных записей пользователей и т. Д.

Я понимаю, что JOptionPane используется для создания простых быстрых и простых модальных диалоговых окон,Я действительно хотел бы знать, почему один выбрал один из другого в этом случае.Какой из них предпочтительнее использовать: JOptionPane против JDialog

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

Спасибо.

Ответы [ 2 ]

8 голосов
/ 17 февраля 2012

Вот заявление, которое я нашел на веб-сайте Java, в котором говорится об одном ключевом моменте о разнице между ними.

Как создавать диалоги

AДиалог может быть модальным.Когда модальный диалог виден, он блокирует пользовательский ввод для всех других окон в программе.JOptionPane создает JDialogs, которые являются модальными.Чтобы создать немодальное диалоговое окно, вы должны использовать класс JDialog напрямую.

Так что, похоже, вы бы использовали JOptionPane, если вы хотите, чтобы пользователь сделал выбор и закрыл окно перед возвратомна главный экран.Если вы используете окно JDialog, они могут просто щелкнуть вокруг него и вернуться к главному экрану, не делая выбора.Например, если вы хотите, чтобы пользователь выбирал количество результатов до нажатия кнопки «Отправить», вы не хотите, чтобы они могли кликать по этому окну и нажимать кнопку «Отправить».Вы должны использовать JOptionPane, чтобы заставить их сначала выбрать значение, прежде чем вернуться к отправке.

2 голосов
/ 17 февраля 2012

Проверьте http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html в нем есть все, что вам нужно.

Насколько я понимаю, JOptionPane отлично подходит для того, что он может сделать, но вы не можете реально изменить функциональность за пределыэто (не легко).JDialog лучше наследовать, если вы хотите создавать свои собственные диалоги.

...