Иллюстрированный самоучитель по Java

Создание меню

Очень часто действия, записанные в командах меню, вызываются не только щелчком кнопки мыши, но и "горячими" клавишами-акселераторами (shortcut), действующими чаще всего при нажатой клавише CTRL. На экране в пунктах меню, которым назначены "горячие" клавиши, появляются подсказки вида CTRL + N, CTRL + O, как на рис. 13.1. "Горячая" клавиша определяется объектом класса MenuShortcut и указывается в его конструкторе константой класса KeyEvent, например:

MenuShortcut keyCreate = new MenuShortcut(KeyEvent.VK_N);

После этого "горячей" будет комбинация клавиш CTRL + N. Затем полученный объект указывается в конструкторе класса Menuitem:

Menuitem create = new Menuitem("Создать", keyCreate);

Нажатие CTRL + N будет вызывать окно создания. Эти действия, разумеется, можно совместить, например:

Menuitem open = new Menultern("Открыть…",
new – MenuShortcut(KeyEvent.VK_O));

Можно добавить еще нажатие клавиши SHIFT. Действие пункта меню будет вызываться нажатием комбинации клавиш SHIFT + CTRL + X, если воспользоваться вторым конструктором:

MenuShortcut(int key, boolean useSHIFT)

…с аргументом useSHIFT == true.

Программа рисования, созданная в листинге 12.4 и показанная на рис. 12.3, явно перегружена кнопками. Перенесем их действия в пункты меню. Добавим возможность манипуляции файлами и команду завершения работы. Это сделано в листинге 13.1. Класс scribble не изменялся и в листинге не приведен. Результат показан на рис. 13.2.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.