В библиотеке Swing содержится много готовых диалоговых окон, которые позволяют вводить небольшие объемы информации. В классе JOptionPane есть четыре статических метода:
showMessageDialog — выводит на экран сообщение и ожидает, пока пользователь не щелкнет на кнопке ОК.
showConfirmDialog — выводит на экран сообщение и ждет подтверждения(ОК или Cancel(Отмена)).
showOptionDialog — выводит на экран сообщение и предоставляет пользователю выбор из нескольких вариантов.
showInputDialog — выводит на экран сообщение и поле редактирования, в котором пользователь должен ввести информацию.Диалоговое окно может содержать компонент для ввода данных. Этим компонентом может быть поле редактирования, в котором пользователь вводит произвольную строку, или выпадающий список, один из пунктов которого пользователь должен выбрать.
Компоновка диалоговых окон и выбор пиктограмм для стандартных сообщений зависит от стиля интерфейса.
Пиктограмма в левой части окна выбирается в зависимости от типа сообщения.
Существуют пять типов сообщений:
- ERROR_MESSAGE
- INFROMATION_MESSAGE
- WARNING_MESSAGE
- QUESTION_MESSAGE
- PLAIN_MESSAGE
Для сообщения PLAIN_MESSAGE пиктограмма не предусмотрена. Для каждого из типов диалоговых окон существует также метод, позволяющий использовать свою собственную пиктограмму.
С каждым из типов диалоговых окон можно связать определенное сообщение, которое может быть строкой, пиктограммой, компонентом пользовательского интерфейса или любым другим объектом. Ниже показано, как эти сообщения отображаются на экране.
- String — выводит строку
- Icon — отображает пиктограмму
- Component — отображает компонент
- Object[] — выводит все объекты, отображая их один поверх другого.
- Любой другой объект — применяет метод toString и выводит на экран строку, полученную в результате этого преобразования.
Разумеется, в большинстве случаев на экран выводится именно строка сообщения. В то же время возможность отображать в диалоговым окне объекты класса Component обеспечивает большую гибкость. Внешний вид кнопок, размещенных в нижней части окна, зависит от типа диалога и типа опций.
Вызывая методы showMessageDialog() или showInputDialog(), вы ограничиваетесь стандартным набором кнопок(ОК либо ОК и Cancel). Вызывая метод showConfirmDialog(), можно выбрать один из четырех типов опций:
- DEFAULT_OPTION
- YES_NO_OPTION
- YES_NO_CANCEL_OPTION
- OK_CANCEL_OPTION
С помощью метода showOptionDialog() можно указать произвольный набор вариантов, задав массив объектов, соответствующих каждому из них. Элементы этого массива отображаются на экране следующим образом.
- String — создает кнопку, меткой которой является заданная строка.
- Icon — создает кнопку, меткой которой является заданная пиктограмма.
- Component — отображает компонент.
- Любой другой обьект — применяет метод toString и создает кнопку, меткой которой является полученная в результате строка.
Статические методы, предназначенные для создания диалоговых окон, возвращают следующие значения.
- showMessageDialog — возвращаемое значение отсутствует.
- showConfirmDialog — целое число, соответствующее выбранному варианту.
- showOptionDialog — целое число, соответствующее выбранному варианту.
- showInputDialog — строка, введенная или выбранная пользователем.
Методы showConfirmDialog() и showOptionDialog() возвращают целое число, обозначающие кнопку, на которой щелкнул пользователь. В диалоговом окне для выбора опций это число является порядковым номером. Если вместо выбора опций пользователь закрыл диалоговое окно, возвращается значение CLOSED_OPTION. Константы, используемые в качестве возвращаемых значений, приведены ниже.
- OK_OPTION
- CANCEL_OPTION
- YES_OPTION
- NO_OPTION
- CLOSED_OPTION
Несмотря на обилие мнемонических обозначений, создать диалоговое окно достаточно просто.
- Выберите тип диалогового окна(сообщение, подтверждение, выбор или ввод).
- Выберите пиктограмму(ошибка, информация, предупреждение, вопрос, своя собственная или никакой).
- Выберите сообщение(строка, пиктограмма, пользовательский компонент или массив компонентов).
- Если вы выбрали диалоговое окно для подтверждения выбора, задайте тип вариантов(по умолчанию, Yes/No, No/Cancel или OK/Cancel).
- Если вы выбрали диалоговое окно для выбора опций, задайте варианты(строки, пиктограммы или собственные компоненты), а также вариант, выбираемый по умолчанию.
- Если вы выбрали диалоговое окно для ввода данных, выберите поле редактирования или выпадающий список.
- Найдите подходящий метод в класс JOptionPane.