Основная функция диалогового окна заключается в том, чтобы приложение или веб-сайт могли получить некоторый ввод от пользователя. Этот ввод может быть подтверждением того, что они прочитали сообщение, или чем-то, что они вводят в текстовую область.
Диалоговое окно сразу привлекает внимание пользователя. Это идеальный инструмент для сбора или отображения важной информации.
Java — это разнообразный язык, который предоставляет несколько классов для создания диалоговых окон. Эти классы включают JOptionPane, JDialog и JFrame.
Класс JOptionPane
Вы можете создать стандартное диалоговое окно, используя один из нескольких статических методов, принадлежащих классу JOptionPane. Это включает:
- показатьдиалог сообщения(), который передает сообщение пользователю.
- показатьПодтвердитьДиалог(), который задает вопрос, требующий подтверждения.
- показатьинпутдиалог(), который предлагает пользователю ввести данные.
- показатьопциондиалог(), который представляет собой комбинацию трех других методов.
Создание диалогового окна JOptionPane
импорт javax.swing. JFrame;
импорт javax.swing. JOptionPane;публичныйклассJOptionPaneApp{
JOptionPaneApp () {
Кадр JFrame = новый JFrame();
JOptionPane.showMessageDialog (фрейм, «Это окно сообщения JOptionPane.»);
}
публичныйстатическийпустотаглавный(строка [] аргументы){
новый JOptionPaneApp();
}
}
Приведенный выше код создает следующее диалоговое окно:
Хотя JOptionPane предоставляет стандартные диалоговые окна, у него есть много опций, позволяющих настроить его поведение. Например, диалоговое окно сообщения может принимать один из нескольких типов. Тот, что выше, является примером INFORMATION_MESSAGE, что является значением по умолчанию. Другие типы сообщений:
- СООБЩЕНИЕ ОБ ОШИБКЕ
- ПРЕДУПРЕЖДАЮЩЕЕ СООБЩЕНИЕ
- QUESTION_MESSAGE
- PLAIN_MESSAGE
Создание сообщения об ошибке
Вот пример того, как использовать другой тип сообщения для диалогового окна JOptionPane:
JOptionPane.showMessageDialog (frame, "Это окно сообщения об ошибке JOptionPane.",
"Ошибка", JOptionPane. СООБЩЕНИЕ ОБ ОШИБКЕ);
Заменить показатьдиалог сообщения() строку в исходной программе со строкой кода выше, и вы увидите следующее диалоговое окно с ошибкой:
Класс JDialog
Класс JDialog позволяет создавать настраиваемые диалоговые окна. Этот Java-класс принадлежит javax.swing package и расширяет класс Dialog. Он имеет доступ к широкому спектру прямых и косвенных методов. Этот класс Java имеет в общей сложности 16 Конструкторы Java.
Помимо конструктора по умолчанию, каждый из 15 других принимает фрейм, окно или диалоговое окно с комбинацией нескольких других аргументов.
Основные конструкторы JDialog включают:
- JDialog() создает диалоговое окно без рамки, заголовка или режима.
- JDialog (владелец диалогового окна, заголовок строки, логическое модальное значение) создает диалоговое окно с владельцем диалогового окна, строковым заголовком и режимом.
- JDialog (владелец фрейма, заголовок строки, логическое модальное значение) создает диалоговое окно с владельцем фрейма, заголовком строки и режимом.
- JDialog (владелец окна, заголовок строки, логическое модальное значение) создает диалоговое окно с владельцем окна, строковым заголовком и режимом.
Создание диалогового окна JDialog
импорт Java.awt. FlowLayout;
импорт java.awt.event. событие действия;
импорт java.awt.event. Прослушиватель действий;
импорт javax.swing. JКнопка;
импорт javax.swing. ДДиалог;
импорт javax.swing. JFrame;
импорт javax.swing. JLabel;
импорт javax.swing. оконные константы;публичныйклассJDialogApp{
JDialogApp() {
Кадр JFrame = новый JFrame();
Диалог JDialog = новый JDialog (кадр, истинный);
диалог.setLayout(новый FlowLayout());JLabel displayText = новый JLabel("Это окно JDialog.");
JКнопка = новый JButton("ОК");btn.addActionListener(новый Слушатель действий () {
публичныйпустотадействие выполнено(событие действия e){
диалог.setVisible(ЛОЖЬ);
}
});диалог.добавить (отображаемый текст);
диалог.добавить (кнопка);диалог.setSize(200,150);
dialog.setTitle("Диалоговое окно");
диалог.setVisible(истинный);
dialog.setDefaultCloseOperation(WindowConstants. DISPOSE_ON_CLOSE);
}
публичныйстатическийпустотаглавный(строковые аргументы []){
новый JDialogApp();
}
}
Приведенный выше код создает следующее диалоговое окно:
Следует отметить несколько важных аспектов кода. В программе используется JDialog (владелец фрейма, логический модальный режим) конструктор, которому он передает JFrame и «истинное» значение в качестве аргументов. JFrame является владельцем JDialog, что означает, что он отвечает за отображение диалогового окна. Значение «истина» означает, что диалоговое окно блокирует ввод в другие связанные окна, когда оно отображается.
Конструктор в приведенном выше коде не принимает заголовок в качестве аргумента. Однако владельцу фрейма нужен титул. Итак, для этой задачи вы можете использовать установитьЗаголовок() метод, который доступен через класс Dialog, расширяемый JDialog. Другими важными методами в коде являются установить видимый(), установить размер (), и setDefaultCloseOperation().
setVisible принимает логическое значение и отвечает за отображение фрейма. setSize принимает высоту и ширину диалогового окна. setDefaultCloseOperation принимает одно из трех значений, определяющих, что произойдет, когда пользователь закроет диалоговое окно.
Класс JFrame
JDialog и JOptionPane используют класс JFrame для создания диалоговых окон. Однако класс JFrame может создавать диалоговые окна самостоятельно. Класс JFrame расширяет класс Frame и, как и класс JDialog, позволяет создавать настраиваемые диалоговые окна.
JFrame имеет четыре конструктора и несколько прямых и косвенных методов, которые вам нужно будет использовать для создания диалогового окна.
Создание диалогового окна JFrame
импорт java.awt.event. событие действия;
импорт java.awt.event. Прослушиватель действий;импорт javax.swing. JКнопка;
импорт javax.swing. JFrame;
импорт javax.swing. JLabel;
импорт javax.swing. JPanel;
импорт javax.swing. оконные константы;публичныйклассJFrameApp{
JFrameApp () {
Кадр JFrame = новый JFrame();
frame.setTitle("Диалоговое окно");
Панель JPanel = новый JPanel();JLabel displayText = новый JLabel("Это окно JFrame.");
панель.добавить(отображатьтекст);
JКнопка = новый JButton("Кнопка ОК");btn.addActionListener(новый Слушатель действий () {
публичныйпустотадействие выполнено(событие действия e){
кадр.setVisible(ЛОЖЬ);
}
});панель.добавить (кнопка);
frame.add (панель);
frame.setDefaultCloseOperation(WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
кадр.setVisible(истинный);
}
публичныйстатическийпустотаглавный(строка [] аргументы){
новый JFrameApp();
}
}
Приведенный выше код создает следующее диалоговое окно:
В коде используется конструктор JFrame по умолчанию и несколько знакомых методов, таких как установитьЗаголовок() метод (используемый в приложении JDialog выше). Незнакомый объект в приведенной выше программе — это JPanel, который является универсальным контейнером. Это дает JFrame возможность добавлять во фрейм несколько макетов и компонентов.
Слушатель Действия() и действиеВыполнено() методы обрабатывают событие, когда пользователь щелкает ХОРОШО кнопка.
Какой класс Java лучше всего подходит для создания диалоговых окон?
Единственная цель класса JOptionPane — сделать процесс создания диалогового окна более удобным для Java-разработчиков. Однако, если вам нужно более индивидуальное диалоговое окно, класс JDialog является следующим лучшим вариантом.
Класс JFrame создает пользовательские интерфейсы, но вы можете использовать его для создания множества различных элементов графического интерфейса, включая диалоговые окна.
Диалоговое окно, созданное с помощью класса JFrame, имеет свернутый значок, а другие — нет. Если вам нужно модальное диалоговое окно, в котором пользователь должен действовать перед выполнением задачи, то JFrame — не лучший подход.
Как написать свое первое приложение с графическим интерфейсом на Java
Читать дальше
Похожие темы
- Программирование
- Программирование
- Джава
- Учебники по кодированию
Об авторе
Кадейша Кин (Kadeisha Kean) — разработчик программного обеспечения полного стека и технический/технологический писатель. У нее есть явная способность упрощать некоторые из самых сложных технологических концепций; производство материала, который может быть легко понят любым новичком в технологии. Она увлечена писательством, разработкой интересного программного обеспечения и путешествиями по миру (с помощью документальных фильмов).
Подпишитесь на нашу рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться