Изучаем Java

Вы здесь: Главная >> Java-самоучитель >> Создание меню с помощью пакета java

Создание меню с помощью пакета java


Меню

Рассмотрим создание меню с помощью пакета java. awt. Для создания панели меню существует класс MenuBar. На эту панель помещается одно ИЛИ несколько вложенных меню (класс Menu). Команды (элементы) меню могут быть такими: простой элемент меню (класс MenuItem) или флажок/переключатель (класс CheckboxMenuItem). В пакете javax. swing аналогичное меню. За построение панели отвечает класс JMenuBar, за вложенное меню— JMenu, за команды меню— JMenuItem, JCheckboxMenuItem и JRadioButtonMenuItem. Рассмотрим создание меню на примере.

1. Создайте приложение, как в первом разделе этой главы, только задайте имя программы "Menu", а заголовок — "MyMenu".

2. Рассмотрим создание меню из пакета javax. swing (в принципе меню обоих пакетов похожи). Перейдите в окно дизайнера и добавьте в форму компонент, расположенный в секции Swing Containers и обладающий всплывающей подсказкой javax.swing. JMenuBar. Таким образом, мы добавили панель меню, и в окне структуры у раздела Menu появился значок jMenuBarl. Теперь в окне структуры щелкните на объекте this и выберите значением свойства JMenuBar jMenuBarl.

3. Теперь щелкните два раза на значке jMenuBarl. Появится два прямоугольника — один располагается сверху, на линейке меню, другой ниже. Щелкните дважды на верхнем квадратике и введите First. Справа появится прямоугольник. Щелкните дважды на прямоугольнике, который располагается ниже квадратика First. Наберите слово Print. Щелкните дважды на правом квадратике и наберите слово Second. На прямоугольнике, расположенном ниже его, наберите Hello. Теперь щелкните на нем правой кнопкой мыши и выберите Checkable/Uncheckable Item. Около квадратика появится галочка. Вновь щелкните на нем и измените свойство selected на True. Что это все такое?

Прямоугольники, расположенные на линейке меню, — это компоненты JMenu. Все прямоугольники внизу— подчиненные элементы. По умолчанию это простые команды JMenuItem, однако с помощью правой кнопки мыши можно установить подчиненный компонент JMenu, который тоже будет содержать элементы (таким образом мы можем создать подменю).
Можно сделать простую команду компонентом JCheckboxMenuItem (так мы поступили с элементом Hello) или JRadioButtonMenuItem. Можно создать разделитель — Separator. Как обычно, Swing-компоненты имеют больше возможностей, чем компоненты из пакета java.awt. Тут можно устанавливать пиктограммы, всплывающие подсказки и др.

4. Теперь щелкните на элементе Print. Щелкните дважды на значении его метода асtionPerformed (выполняется при загрузке этого элемента, т.е. щелчке на нем).

В открывшемся окне введите следующие команды.

public void jMenuIteml_actionPerformed(ActionEvent e)
{ if (jCheckBoxMenuIteml.getState())
this.setTitle("Print Hello");
else
this.setTitle(" Print");
}

Теперь запустите программу и поэкспериментируйте с ней. Один из возможных вариантов ее выполнения показан на рис. 8.6.

Рис. 8.6. Выполнение программы из примера создания Menu

Работа с компонентами для создания меню из пакета java. awt аналогична работе с компонентами из пакета javax. swing, однако у первых меньше свойств.

Теперь добавим меню к нашей программе для магазина, выполнив следующие действия.
1. Загрузите проект.
2. Добавьте в проект компонент JMenuBar. Установите для объекта this свойство JMenuBar в значение jMenuBarl. Разработайте меню по принципу, представленному в листинге 8.3.

Листинг 8.3
Создание меню

Commands — класс JMenu
Buy — класс JMenuItem Goods — класс JMenu
• Potatoes — класс JCheckboxMenuItem
• Carrots — класс JCheckboxMenuItem
• Tomatoes — класс JCheckboxMenuItem
• Cucumbers — класс JCheckboxMenuItem
• Radishes — класс JCheckboxMenuItem
• Red currants — класс JCheckboxMenuItem
• Black Currants — класс JCheckboxMenuItem
• Raspberries — класс JCheckboxMenuItem
• Strawberries — класс JCheckboxMenuItem
• Mango — класс JCheckboxMenuItem
• Pepsi-Cola — класс JRadioButtonMenuItem (свойство Selected: True)
• Coca-Cola — класс JRadioButtonMenuItem (свойство Selected: False)
• Fanta — класс JRadioButtonMenuItem (свойство Selected: False)
• 7UP — класс JRadioButtonMenuItem (свойство Selected: False)
• Mountain Dew — класс JRadioButtonMenuItem (свойство Selected: False)
• STIMOROL PRO-Z — класс JRadioButtonMenuItem (свойство Selected: True)
• DIROL — класс JRadioButtonMenuItem (свойство Selected: False)
• ORBIT — класс JRadioButtonMenuItem (свойство Selected: False)

3. Пощелкайте на всех флажках и переключателях и наберите в открывшемся текстовом окне код, представленный в листинге 8.4.

Листинг 8.4.
Определение методов обработки событий


4. Теперь нужно у каждой команды меню вызвать свой обработчик события, в котором будет описано, что происходит при щелчке на ней. Заполните обработчики кодом, представленным в листинге 8.5.

Не забывайте, что для создания обработчика необходимо пощелкать на обработчике события actionPerf ormed на вкладке Events.

Листинг 8.5.
Текст обработчиков событий

5. Создайте теперь акселератор (горячую клавишу) для команды Buy (или Account). Для этого выберите команду Buy в меню в окне структуры (jMenuIteml) и щелкните на кнопке с многоточием около имени свойства Accelerator. Установите в раскрывшемся окне Accelerator все параметры так, как показано на рис. 8.7.

Рис. 8.7. Определение акселератора для команды меню

6. Далее щелкните на кнопке ОК и запустите программу. Результат ее может быть таким как на рисунке 8.8.

Рис. 8.8. Результат выполнения листинга 8.5


Партнеры сайта