Читаем Java 7 полностью

Как видите, сообщение message задается объектом самого общего типа Object. В качестве сообщения может появиться компонент класса Component, изображение типа Icon. Все остальные объекты преобразуются в строку методом toString(), строка помещается в созданный объект класса JLabel, который и выводится в окно сообщения. Параметром message может быть и массив типа Object []. В этом случае в окно будет выведено несколько сообщений.

На рис. 14.13 показано окно сообщения, созданное методом


JOptionPane.showMessageDialog(this," В поле \"Код\" могут быть только цифры."," Ошибка", JOptionPane.ERROR MESSAGE);
Рис. 14.13. Окно сообщения типа "Ошибка"


Рис. 14.14. Окно подтверждения типа "Вопрос"

Окно подтверждения или отмены действий содержит две или три кнопки: Yes (Да), No (Нет), Cancel (Отмена). Это обозначается константами yes_no_option или YES_NO_CANCEL_OPTION и регулируется параметром optType методов showConfirmDialog ( ). Сигнатура метода этого типа с самым большим числом параметров выглядит так:

static int showConfirmDialog(Component parent, Object message,

String title, int optType, int messType, Icon icon);

Метод возвращает одну из констант yes_option, no_option, cancel_option в зависимости от того, какая кнопка была нажата. При закрытии окна без всякого выбора возвращается значение closed_option. На рис. 14.14 показано окно подтверждения, используемое, например, так: int n = JOptionPane.showConfirmDialog(this,

"Сохранить этот/предыдущий вариант (Yes/No)?",

" Сохранение документа", JOptionPane.YES NO CANCEL OPTION,

JOptionPane.QUESTION_MESSAGE); switch(n){

case JOptionPane.YES OPTION: saveDoc(); break;

case JOptionPane.NO OPTION: restore(); saveDoc(); break;

case JOptionPane.CANCEL_OPTION:

case JOptionPane.CLOSED OPTION: break;

default:

}

Диалоговое окно ввода содержит поле для ввода краткого ответа, возвращаемого методом, или список выбора, а также кнопки OK и Cancel (Отмена). На рис. 14.15 показано окно, созданное методом

String s = (String)JOptionPane.showlnputDialog(this,

" Запишите ответ: ", " Ответ", JOptionPane.WARNING MESSAGE);


Рис. 14.15. Окно ввода типа "Предупреждение"


Рис. 14.16. Окно ввода с вариантами ответа

На рис. 14.16 показано окно, созданное методами

String[] vars = {"Первый", "Второй", "Третий"};

String s = (String)JOptionPane.showlnputDialog(this, "Выберите вариант ответа:", " Варианты ответа", JOptionPane.QUESTION MESSAGE, new ImageIcon("bird.gif"), vars, "Второй");

Для российских программистов, вечно озабоченных русификацией своих приложений, удобнее четвертый тип стандартных диалоговых окон, создаваемый методом

static int showOptionDialog(Component parent, Object message,

String title, int optType, int messType, Icon icon,

Object[] options, Object init);

Предпоследний параметр options задает надписи на кнопках диалогового окна или графические компоненты, выводимые в окно вместо кнопок. Последний параметр init выделяет одну из кнопок или графических компонентов.

Например, окно, показанное на рис. 14.14, будет лучше выглядеть, если его создать методами

String[] vars = {"Этот", "Предыдущий", "Не сохранять"};

int n = JOptionPane.showOptionDialog(this,

" Сохранить этот или предыдущий вариант?",

" Сохранение документа", JOptionPane.YES NO CANCEL OPTION,

JOptionPane.QUESTION_MESSAGE, null, vars, "Этот");

как показано на рис. 14.17.


Рис. 14.17. Окно с русскими надписями


Рис. 14.18. Простейшее диалоговое окно

Как видно из рисунков, каждое стандартное диалоговое окно содержит элементы: предопределенный выбранным L&F или собственный ярлык, сообщение, кнопки и, может быть, поле ввода. Если такое строение диалогового окна не устраивает разработчика, то он может создать собственное диалоговое окно класса JDialog, в которое поместить диалоговую панель JOptionPane. Для этого имеется семь конструкторов. Конструктор по умолчанию JOptionPane () создает диалоговую панель с кнопкой OK и стандартной строкой сообщения. Она показана на рис. 14.18. Этот рисунок создан методами

JOptionPane op = new JOptionPane();

JDialog d = op.createDialog(this, " Простейшее диалоговое окно"); d.setVisible(true);

Конструктор с наибольшим числом параметров выглядит так:

JOptionPane(Object message, int messType, int optType,

Icon icon, Object[] options, Object init);

у остальных конструкторов приняты значения по умолчанию отсутствующих параметров.

На рис. 14.19 представлено окно, созданное методами

String[] opts = {"Применить", "Отменить", "Перейти", "Завершить"};

JOptionPane op = new JOptionPane(

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных