Читаем Графические интерфейсы пользователя Java полностью

После создания панели меню и меню, в меню добавляются элементы меню, которые на самом деле содержатся в меню JPopupMenu, появляющемся при нажатии меню.

Элементы меню добавляются в меню методом add.

Туда же можно и добавлять разделители между элементами меню.

При создании элемента меню в нем можно задать текст, изображение, или сразу и то и другое с помощью конструктора класса JMenuItem.

Также, при создании элемента меню можно задать для него горячие клавиши, методом setAccelerator.

При этом горячие клавиши будут отображаться в элементе меню.

К элементу меню обычно присоединяют слушателя событий, который обрабатывает нажатие элемента меню и выполняет действие, для которого этот элемент меню собственно и создавался.

Для меню и элементов меню можно назначить мнемонику или клавиши выбора с помощью метода setMnemonic.

Здесь для меню File мы назначаем комбинацию клавиш Alt + F, при нажатии на которые открывается меню.

Затем мы назначаем мнемонику или клавишу Е для элемента меню Exit.

Чтобы воспользоваться этой клавишей, мы сначала нажимаем Alt + F, то есть открываем меню, а затем нажимаем E и срабатывает этот элемент меню.

В отличие от мнемоники, клавиши акселерации сразу нажимают элемент меню.

Меню и элемент меню также можно создать на основе объекта Action, инкапсулирующего свойства, которые могут быть повторно использованы.

Объект Action может быть использован для разделения функциональности и состояния от самого компонента.

Например, если у вас есть два или более компонента, которые выполняют одну и ту же функцию, можно использовать один объект Action для создания этих компонентов.

Объект Action – это слушатель действий, который обеспечивает не только обработку событий, но также централизованную обработку состояния компонентов, связанных с событием, таких как элементы меню.

Состояние, которое обрабатывается этим действием, включает в себя текст, значок, мнемонику, активацию и выбранный статус.

В этом примере мы создаем действие Action, в котором задаем надпись элемента меню, его клавиши акселерации, и обработчик нажатия элемента меню, в котором мы показываем диалоговое окно подтверждения действия.

Далее мы создаем элемент меню на основе объекта Action и добавляем этот элемент в само меню.

<p>JCheckboxMenuItem и JRadioButtonMenuItem</p>

Помимо простого элемента меню, есть компоненты JCheckboxMenuItem и JRadioButtonMenuItem, представляющие флажок и радиокнопку для добавления в меню.

В этом примере обработчик выбора флажка позволяет динамически добавляет и удалять элементы меню.

Отследить состояние выбора флажка позволяет метод getState.

В этом примере мы создаем две радиокнопки и объединяем их в группу.

Чтобы могла быть выбрана только одна кнопка.

В обработчике событий выбора радиокнопки мы используем команду, присвоенную кнопке, как ее идентификатор при выборе радиокнопки.

<p>JPopupMenu</p>

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

Оно появляется при нажатии правой кнопки мыши на компоненте, к которому привязано.

Для создания всплывающего меню используется конструктор класса, в котором можно указать заголовок меню.

Затем создаются элементы меню, которые добавляются в всплывающее меню.

Для того чтобы всплывающее меню появилось, к компоненту добавляется слушатель событий мыши.

В обработчике этого слушателя, для события мыши вызывается метод isPopupTrigger, который возвращает подтверждение, является ли это событие мыши событием всплывающего меню.

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

Поэтому событие isPopupTrigger следует проверять как в методе mousePressed, так и в методе mouseReleased для правильной межплатформенной функциональности.

<p>JSpinner и JSlider</p>

Компонент JSpinner работает аналогично компонентам JList и JComboBox, но вместе с компонентом JFormattedTextField.

В компоненте JList и JComboBox пользователь может выбирать ввод из заданного набора значений.

Компонент JSpinner также позволяет использовать этот тип выбора.

Другая половина компонента JSpinner – это форматированное поле JFormattedTextField.

В компоненте JSpinner, как отображать или вводить значение не контролируется средством отображения списка ListCellRenderer, как в JList.

Вместо этого вы получаете форматированное поле JFormattedTextField для ввода и пару стрелок для перемещения по различным значениям, доступным для форматированного поля.

Так как для ввода и отображения в компоненте JSpinner у нас есть форматированное поле JFormattedTextField, мы имеем три предустановленных типа ввода – это список строк, последовательность объектов Number, и последовательность объектов Date.

Для создания компонента JSpinner, сначала создается его модель данных.

Предустановленные модели данных – это SpinnerDateModel, SpinnerListModel, и SpinnerNumberModel.

Эти классы расширяют абстрактный класс AbstractSpinnerModel.

Поэтому, если вы хотите создать свою собственную модель данных, вам нужно создать свою собственную реализацию абстрактного класса AbstractSpinnerModel.

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

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

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

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

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

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

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

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

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