Меню являются важнейшими элементами графического интерфейса. В большинстве приложений меню является основным средством для выполнения возможных операций приложения. Главное меню пожалуй не используется только в диалоговых окнах и специфических, нестандартных развлекательных приложениях. Для создания меню предназначены классы Menu и MenuItem. Различают три вида меню:
Bar menu - это обычно главная панель меню. Для большинства платформ главное меню размещается в верхей части родительской формы (В ОС Macintosh главное меню размещается на десктопе и является общим для всех приложений);
Drop-down menu - это дочерние выпадающие меню, часто используются термины SubMenu или каскадные меню;
Popup menu - это контекстное меню, которое динамически формируется в зависимости от текущего местоположения курсора и вызывается либо с клавиатуры либо при помощи мыши, в зависимости от настроек ОС (обычно по правой кнопке мыши).
Рисунок 5.1. Menu. Иерархия классов
Рисунок 5.2. MenuItem. Иерархия классов
Для создания экземпляра класса Menu используется следующий конструктор:
public Menu (Decorations parent, int style)
Где parent – обязательный родительский компонент (контейнер), а style это один или несколько стилей определяющий параметры создания класса Menu.
Конструктор без указания стиля создает popup меню (стиль SWT.POP_UP):
public Menu (Control parent)
Где parent – обязательный родительский компонент (контейнер).
Конструктор:
public Menu (Menu parentMenu)
создает новый экземпляр класса Menu с родительским меню parentMenu (параметр parentMenu не может быть null). По умолчанию задается стиль выпадающего drop-down меню.
Конструктор:
public Menu (MenuItem parentItem)
создает новый экземпляр класса Menu с родительским элементом меню parentItem (параметр parentItem не может быть null). По умолчанию задается стиль выпадающего drop-down меню.
Стили формируют битовую маску по принципу логического «ИЛИ». Для объединения стилей используется символ "|".
Стиль | Описание |
|
|
---|---|---|---|
SWT.BAR | Создается панель главного меню | Только один атрибут из BAR, DROP_DOWN и POP_UP может быть выбран. | |
SWT.DROP_DOWN | Создается выпадающее меню | ||
SWT.POP_UP | Создается контекстное меню | ||
NO_RADIO_GROUP | Отменяется режим поведения меню в стиле Radio button | ||
LEFT_TO_RIGHT | Устанавливает ориентацию меню слева направо | Только один атрибут из LEFT_TO_RIGHT и RIGHT_TO_LEFT может быть выбран | |
RIGHT_TO_LEFT | Устанавливает ориентацию меню справа налево |
Стиль | Описание |
|
|
---|---|---|---|
SWT.CHECK | Только один атрибут из CHECK, CASCADE, PUSH, RADIO и SEPARATOR может быть выбран. | ||
SWT.CASCADE | |||
SWT.PUSH | |||
SWT.SEPARATOR |