JOptionPane против JDialog

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

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

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

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

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

Спасибо.


person Kristjan Toots    schedule 17.02.2012    source источник
comment
вот хороший учебник для начинающих по их использованию: thepcwizard.in/2012/05/   -  person ThePCWizard    schedule 11.01.2013


Ответы (2)


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

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

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

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

person Logan    schedule 17.02.2012

Посетите http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html в нем есть все, что вам может понадобиться.

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

person dann.dev    schedule 17.02.2012