- Диалоговые окна JOptionPane
- Класс JOptionPane
- Основные диалоговые методы JOptionPane
- Конструкторы окна сообщений showMessageDialog
- Конструкторы окна подтверждения showConfirmDialog
- Конструкторы окна выбора showInputDialog
- Локализация кнопок JOptionPane
- Пример использования JOptionPane
- Листинг примера JOptionPane
- Окна вывода сообщений MessageDialog
- Диалоговые окна подтверждений ConfirmDialog
- Диалоговые окна выбора данных InputDialog
- Скачать примеры
- Создать всплывающее окно в Java
- Создать всплывающее окно в Java с помощью JOptionPane
- Создать всплывающее окно в Java с помощью JDialog
- Как Сделать Диалоговые окна
- Краткий обзор Диалоговых окон
- Пример DialogDemo
- Функции JOptionPane
- Создание и Показ Простых Диалоговых окон
- Настройка Текста кнопки
- Получение Ввода Пользователя от Диалогового окна
- Остановка Автоматического Диалогового Закрытия
- Диалоговый API
- Примеры то Использование Диалоговые окна
Диалоговые окна JOptionPane
Библиотека Swing включает богатый выбор стандартных диалоговых окон, существенно упрощающих и ускоряющих вывод простой информации типа сообщений о работе программы, ошибках и нестандартных ситуациях. Для вывода в графический интерфейс приложения разнообразной информации и выбора простых данных предназначен класс JOptionPane, работа с которым связана с вызовом одного из многочисленных статических методов, создающих и выводящих на экран модальное диалоговое окно стандартного вида. В диалоговых окнах JOptionPane можно выводить самую разнообразную информацию и, при необходимости, размещать в них дополнительные компоненты.
JOptionPane унаследован от базового класса JComponent библиотеки Swing, так что можно работать с ним напрямую, т.е. создавать экземпляры класса JOptionPane и настраивать их свойства. Использование стандартных диалоговых окон существенно упрощает разработку приложения и позволяет ускорить процесс освоения пользователем интерфейса.
Все стандартные диалоговые окна Swing имеют собственные UI-представители, отвечающие за интерфейс окна в используемом приложении. Это особенно важно для внешних видов окон, имитирующих известные платформы, пользователи которых не должны ощущать значительной разницы при переходе от «родных» приложений к Java-приложениям.
Класс JOptionPane
Интерфейс экземпляра класса JOptionPane имеет структуру, представленную на следующем рисунке. Иконка в интерфейсе может отсутствовать.
Основные диалоговые методы JOptionPane
Наименование метода | Описание |
---|---|
showMessageDialog | Диалоговое окно вывода сообщения |
showConfirmDialog | Диалоговое окно подтверждения, с включением кнопок типа yes/no/cancel |
showInputDialog | Диалоговое окно с выбором |
Конструкторы окна сообщений showMessageDialog
Конструкторы окна подтверждения showConfirmDialog
Конструкторы окна выбора showInputDialog
parent — родительское окно.
message — отображаемый в окне текст сообщения. В большинстве случаев это строка, но может быть использован массив строк String[], компонент Component, иконка Icon, представленная меткой JLabel, объект Object, конвертируемый в строку методом toString().
title — заголовок окна.
messageType — тип диалогового окна :
- INFORMATION_MESSAGE — стандартное диалоговое окно для вывода информации со значком соответствующего вида;
- WARNING_MESSAGE — стандартное диалоговое окно для вывода предупреждающей информации со значком соответствующего вида;
- QUESTION_MESSAGE — стандартное диалоговое окно для вывода информации. Как правило, не используется для информационных сообщений;
- ERROR_MESSAGE — стандартное диалоговое окно для вывода информации об ошибке со значком соответствующего вида;
- PLAIN_MESSAGE — стандартное диалоговое окно для вывода информации без значка.
optionType — опция определения кнопок управления :
- DEFAULT_OPTION
- YES_NO_OPTION
- YES_NO_CANCEL_OPTION
- OK_CANCEL_OPTION
selectionValues — список возможных значений. В диалоговом окне InputDialog список будет представлен в компоненте JComboBox или JList. Если selectionValues = null, то в окне будет определено поле JTextField, в которое пользователь может ввести любое значение.
initialSelectionValue — инициализируемое значение.
icon — отображаемая в диалоговом окне иконка.
Локализация кнопок JOptionPane
Кнопки управления, как правило, имеют заголовки «Yes», «No», «Cancel». Для локализации кнопок диалогового компонента JOptionPane можно использовать UIManager следующим образом :
Пример использования JOptionPane
Пример JOptionPaneTest.java включает использование всех типов диалоговых окон JOptionPane. В интерфейсе окна, представленном на следующем скриншоте, размещаются кнопки, по нажатию на которые формируются соответствующие диалоговые окна JOptionPane.
Листинг примера JOptionPane
В методах addMessageListeners(), addConfirmListeners(), addInputListeners() определяются слушатели, обрабатывающие нажатие соответствующих кнопок.
Окна вывода сообщений MessageDialog
Листинг процедуры создания слушателей, формирующие диалоговые окна вывода сообщений.
1. Интерфейс окна вывода сообщений по нажатию на кнопку btnMessage1. Конструктор получает 2 параметра : родитель и текст сообщения. В заголовок подставляется значение «Message». Текст сообщения имеет HTML разметку.
2. Интерфейс окна вывода сообщений по нажатию на кнопку btnMessage2. Конструктор получает 4 параметра : родитель, текст сообщения в виде массива строк, строку заголовка окна и тип сообщения.
3. Интерфейс окна вывода сообщений по нажатию на кнопку btnMessage2. Конструктор получает 5 параметров : родитель, текст сообщения, строку заголовка окна, тип сообщения и иконку.
Диалоговые окна подтверждений ConfirmDialog
Листинг процедуры создания слушателей, формирующие диалоговые окна подтверждений.
1. Интерфейс окна подтверждения по нажатию на кнопку btnConfirm1. Конструктор получает 4 параметра : родитель, текст сообщения, строка заголовка и опция кнопок управления
В зависимости от нажатой кнопки открываются следующее окно подтверждение (одно из окон на следующем скриншот), конструктор которого получает 2 параметра. Текст заголовка имеет значение по умолчанию «Select an Option».
2. Интерфейс окна подтверждения по нажатию на кнопку btnConfirm2. Конструктор получает 5 параметров : родитель, текст сообщения, строка заголовка, опция кнопок управления и тип сообщения.
3. Интерфейс окна подтверждения по нажатию на кнопку btnConfirm3. Конструктор получает 6 параметров : родитель, текст сообщения, строка заголовка, опция кнопок управления, тип сообщения и иконка.
Диалоговые окна выбора данных InputDialog
Листинг процедуры создания слушателей, формирующие диалоговые окна выбора
1. Интерфейс окна ввода данных по нажатию на кнопку btnInput1 представлен на скриншоте слева. Конструктор получает 2 параметра : родитель и текст сообщения с разметкой HTML. После ввода значения и нажатия на одну из клавиш открывается окно, представленное на скриншоте справа.
2. На следующем скриншоте представлен интерфейс окна ввода данных, создаваемое конструктором, которому в качестве текста передается родитель, текстовое сообщение в виде массива строк, строка заголовка и тип диалогового окна (иконки).
3. Интерфейс окна ввода данных по нажатию на кнопку btnInput3 представлен на следующем скриншоте слева. Конструктор получает все возможные параметры : родитель, текстовое сообщение, строка заголовка, тип диалогового окна, иконка, массив строк и выделенное значение по умолчанию. В диалоговом окне возможные значения представлены в компоненте выпадающего списка. После выбора значения и нажатия на одну из клавиш открывается окно вывода сообщения, представленное на скриншоте справа.
Скачать примеры
Исходные коды примеров, рассмотренных на странице, можно скачать здесь (2.25 Кб).
Источник
Создать всплывающее окно в Java
Java позволяет нам создавать несколько типов компонентов графического интерфейса с использованием таких библиотек, как AWT, Swing и JavaFX. В этом уроке мы рассмотрим диалог и узнаем, как его создать. В следующих примерах мы будем использовать два класса: JOptionPane и JDialog .
Создать всплывающее окно в Java с помощью JOptionPane
Самый простой способ создать всплывающее окно или диалоговое окно Java — использовать класс JOptionPane как часть пакета javax.swing , который имеет множество полезных методов. Некоторые из распространенных техник перечислены ниже:
Метод | Описание |
---|---|
showMessageDialog() | Отображает сообщение внутри указанного фрейма |
showInputDialog() | Получить ввод от пользователя во всплывающем окне |
showConfirmDialog() | Показывает сообщение и запрашивает у пользователя подтверждение, например “да”, “нет” или “отмена”. |
Ниже приведены примеры методов:
Пример 1. Отобразите сообщение внутри JFrame , создав объект Jframe , вызовите метод JOptionPane.showMessageDialog() и передайте первый объект jFrame в качестве его первого аргумента. Второй аргумент — это сообщение, которое мы хотим отобразить в диалоговом окне.
Пример 2: В этом примере используется функция JOptionPane.showInputDialog() для отображения сообщения с полем ввода для получения ввода. Здесь, чтобы сохранить ввод, мы используем переменную String , а затем показываем ее пользователю с помощью showMessageDialog() .
Пример 3: Мы используем функцию JOptionPane.showConfirmDialog() для отображения диалогового окна с тремя кнопками: Yes , No и Cancel . Как и другие методы, мы передаем объект jFrame и сообщение для отображения. Метод showConfirmDialog() возвращает int , которое указывает кнопку, по которой была нажата кнопка: 0 означает Yes , 1 означает No , а любое другое целое число указывает, что была нажата кнопка отмены.
Создать всплывающее окно в Java с помощью JDialog
Во втором методе мы используем класс Jdialog . Для создания фрейма нам нужен объект jFrame , который передается конструктору Jdialog в качестве аргумента, когда мы создаем объект JDialog и jd . Теперь нам нужно установить макет диалога, который указывает, как размещать компоненты внутри диалога. Мы устанавливаем функцию FlowLayout() , которая выстраивает компоненты в линию с помощью jd.setLayout() .
Чтобы установить положение и размер всплывающего окна, мы используем функцию setBounds() , где первые два аргумента — это позиции x и y, а последние два аргумента — ширина и высота.
Мы создаем переменную jLabel с текстовым сообщением, переданным внутри конструктора, чтобы показать текст. Чтобы пользователь мог закрыть диалог, мы создаем объект JButton с текстом Close . Теперь нам нужно настроить действие, которое будет выполняться при нажатии кнопки закрытия. Для этого мы вызываем функцию addActionListener() , которая заменяет метод actionPerformed() , в котором мы указываем действие, которое нужно выполнить.
Источник
Как Сделать Диалоговые окна
Диалоговое окно является независимым подокном, предназначенным, чтобы перенести временное уведомление кроме основного Окна приложения Swing. Большинство Диалоговых окон представляет сообщение об ошибке или предупреждение пользователю, но Диалоговые окна могут представить изображения, деревья каталогов, или примерно что-либо совместимое с основным Приложением Swing, которое управляет ими.
Для удобства несколько компонентных классов Swing могут непосредственно инстанцировать и вывести на экран диалоговые окна. Чтобы создать простые, стандартные диалоговые окна, Вы используете JOptionPane class. ProgressMonitor class может поднять диалоговое окно, которое показывает продвижение работы. Два других класса, JColorChooser и JFileChooser , также предоставьте стандартные диалоговые окна. Чтобы перевести диалоговое окно печати в рабочее состояние, можно использовать API Печати. Чтобы создать пользовательское диалоговое окно, используйте JDialog class непосредственно.
Код для простых диалоговых окон может быть минимальным. Например, вот информационное диалоговое окно:
Вот код, который создает и показывает это:
Остальная часть этого раздела затрагивает следующие темы:
Краткий обзор Диалоговых окон
Каждое диалоговое окно зависит от компонента Фрейма. Когда тот Фрейм уничтожается, так его зависимые Диалоговые окна. Когда фрейм представляется в виде значка, его зависимые Диалоговые окна также исчезают из экрана. Когда фрейм является deiconified, его зависимые Диалоговые окна возвращаются к экрану. Колебание JDialog class наследовало это поведение от AWT Dialog class.
Диалоговое окно может быть модальным. Когда модальное Диалоговое окно видимо, оно блокирует ввод данных пользователем ко всем другим окнам в программе. JOptionPane создает JDialog s, которые модальны. Чтобы создать немодальное Диалоговое окно, следует использовать JDialog class непосредственно.
Запускаясь с JDK 6, можно изменить поведение модальности диалогового окна, используя новый API Модальности. См. Новый API Модальности для деталей.
JDialog class является подклассом AWT java.awt.Dialog class. Это добавляет корневой контейнер области и поддержку операции закрытия значения по умолчанию к Dialog объект. Они — те же самые функции это JFrame имеет, и использование JDialog непосредственно очень подобно использованию JFrame . Если Вы собираетесь использовать JDialog непосредственно, тогда следует понять материал в Использовании Высокоуровневых Контейнеров и Как Сделать Фреймы, особенно Отвечая на Закрывающие окно События.
Даже когда Вы используете JOptionPane чтобы реализовать диалоговое окно, Вы все еще используете a JDialog негласно. Причина — это JOptionPane просто контейнер, который может автоматически создать a JDialog и добавьте себя к JDialog ‘s область контента.
Пример DialogDemo
Вот изображение приложения, которое выводит на экран диалоговые окна.
Try this:
- Run DialogDemo ( download JDK 6 or later ). Or, to compile and run the example yourself, consult the example index. —>
Появится модальное диалоговое окно. Пока Вы не закроете это, приложение будет безразлично, хотя это перекрасит себя в случае необходимости. Можно закрыть диалоговое окно или нажимая кнопку в диалоговом окне или явно, такой как при использовании художественных оформлений диалогового окна.
Появится немодальное диалоговое окно. Отметьте, что окно DialogDemo остается полностью функциональным, в то время как немодальное диалоговое окно произошло.
Диалоговое окно не исчезнет из экрана до Вас deiconify окно DialogDemo.
Функции JOptionPane
Используя JOptionPane , можно быстро создать и настроить несколько различных видов диалоговых окон. JOptionPane оказывает поддержку для того, чтобы разметить стандартные диалоговые окна, обеспечивая значки, определяя диалоговый title и текст, и настраивая текст кнопки. Другие функции позволяют Вам настраивать компоненты диалоговые дисплеи и определять, где диалоговое окно должно казаться экранным. Можно даже определить что область опции, помещенная непосредственно во внутреннюю рамку ( JInternalFrame ) вместо a JDialog .
Когда Вы создаете a JOptionPane , стиль определенный код добавляет компоненты к JOptionPane и определяет расположение тех компонентов.
JOptionPane ‘s поддержка значка позволяет Вам легко определять, какой значок диалоговое окно выводит на экран. Можно использовать пользовательский значок, никакой значок вообще, или любой из четырех стандартов JOptionPane значки (вопрос, информация, предупреждение, и ошибка). У каждого стили есть свои собственные версии четырех стандартных значков. Следующие данные показывают значки, используемые в Java (и Windows) стиль.
Описание значка | Стиль Java | Стиль Windows |
---|---|---|
вопрос | ||
информация | ||
предупреждение | ||
ошибка |
Создание и Показ Простых Диалоговых окон
Для самых простых модальных диалоговых окон Вы создаете и показываете диалоговое окно, используя один из JOptionPane ‘s showXxxDialog методы. Если Ваше диалоговое окно должно быть внутренней рамкой, то добавьте Internal после show — например, showMessageDialog изменения к showInternalMessageDialog . Если Вы должны управлять закрывающим диалоговое окно поведением или если Вы не хотите, чтобы диалоговое окно было модально, то следует непосредственно инстанцировать JOptionPane и добавьте это к a JDialog экземпляр. Затем вызовите setVisible(true) на JDialog заставить это появиться.
Самые полезные два showXxxDialog методы showMessageDialog и showOptionDialog . showMessageDialog метод выводит на экран простое, диалоговое окно с одной кнопкой. showOptionDialog метод выводит на экран специализированное диалоговое окно — он может вывести на экран множество кнопок со специализированным текстом кнопки, и может содержать стандартное текстовое сообщение или набор компонентов.
Другие два showXxxDialog методы используются менее часто. showConfirmDialog метод просит, чтобы пользователь подтвердил что-то, но представляет текст стандартной кнопки (Да/Нет или локализованный эквивалент, например), а не текст кнопки, настроенный к пользовательской ситуации (Запустите/Отмените, например). Четвертый метод, showInputDialog , разрабатывается, чтобы вывести на экран модальное диалоговое окно, которое получает строку от пользователя, используя или текстовое поле, недоступное для редактирования поле комбинированного списка или список.
Вот некоторые примеры, взятые от DialogDemo.java , из использования showMessageDialog , showOptionDialog , и JOptionPane конструктор. Для большего количества примера кода см. DialogDemo.java и другие программы, перечисленные в Примерах то Использование Диалоговые окна.
showMessageDialog Выводит на экран модальное диалоговое окно с одной кнопкой, которая маркируется «OK» (или локализованный эквивалент). Можно легко определить сообщение, значок, и title, который выводит на экран диалоговое окно. Вот некоторые примеры использования showMessageDialog :
showOptionDialog Выводит на экран модальное диалоговое окно с указанными кнопками, значками, сообщением, title, и так далее. С этим методом можно изменить текст, который появляется на кнопках стандартных диалоговых окон. Можно также выполнить много других видов настройки.
JOptionPane (конструктор) Создает a JOptionPane с указанными кнопками, значками, сообщением, title, и так далее. Следует тогда добавить область опции к a JDialog , зарегистрируйте слушателя изменения свойства на области опции, и покажите диалоговое окно. См., что Останавливающееся Автоматическое Диалоговое окно Закрывается для деталей.
Параметры всему из showXxxDialog методы и JOptionPane конструкторы стандартизируются, хотя число параметров за каждый метод и конструктора изменяется. Следующий список описывает каждый параметр. Чтобы видеть точный список параметров за определенный метод, см. Диалоговый API. Component parentComponent Первый параметр каждому showXxxDialog метод всегда является родительским компонентом, который должен быть Фреймом, компонентом во Фрейме, или нулем. Если Вы определите Фрейм или Диалоговое окно, то Диалоговое окно будет появляться по центру Фрейма и следовать за поведением фокуса того Фрейма. Если Вы определите компонент во Фрейме, то Диалоговое окно появится по центру того компонента и будет следовать за поведением фокуса Фрейма того компонента. Если Вы определите нуль, то стиль выберет соответствующую позицию для диалогового окна — обычно, центр экрана — и Диалоговое окно будет не обязательно следовать за поведением фокуса любого видимого Фрейма или Диалогового окна. JOptionPane конструкторы не включают этот параметр. Вместо этого Вы определяете родительский фрейм, когда Вы создаете JDialog это содержит JOptionPane , и Вы используете JDialog setLocationRelativeTo метод, чтобы установить диалоговую позицию. Object message Этот необходимый параметр определяет то, что диалоговое окно должно вывести на экран в его основной области. Обычно, Вы определяете строку, которая приводит к диалоговому окну, выводящему на экран метку с указанным текстом. Можно разделить сообщение более чем несколько строк, помещая новую строку ( \n ) символы в строке сообщения. Например: Можно или позволить опции разделять дисплей на области ее значок значения по умолчанию или определять значок, используя тип сообщения или параметр значка. По умолчанию, область опции, создаваемая с showMessageDialog выводит на экран информационный значок, один создаваемый с showConfirmDialog или showInputDialog выводит на экран значок вопроса, и один создаваемый с a JOptionPane конструктор не выводит на экран значка. Чтобы определить, что диалоговое окно выводит на экран стандартный значок или никакой значок, определите тип сообщения, соответствующий значку, которого Вы требуете. Чтобы определить пользовательский значок, используйте параметр значка. Параметр значка имеет приоритет по типу сообщения; пока у параметра значка есть ненулевое значение, диалоговое окно выводит на экран указанный значок. Настройка Текста кнопкиКогда Вы используете JOptionPane чтобы создать диалоговое окно, можно или использовать текст стандартной кнопки (который мог бы измениться стилем и локалью), или определите различный текст. По умолчанию тип области опции определяет, сколько кнопок появляется. Например, YES_NO_OPTION у диалоговых окон есть две кнопки, и YES_NO_CANCEL_OPTION у диалоговых окон есть три кнопки. Следующий код, взятый от DialogDemo.java , создает два Да/Нет диалоговые окна. Первое диалоговое окно реализуется с showConfirmDialog , который использует формулировку стили для этих двух кнопок. Второе диалоговое использование showOptionDialog таким образом, это может настроить формулировку. За исключением формулировки изменений, диалоговые окна идентичны.
|