Читаем 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.

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

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

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