• Иллюстрированный самоучитель по 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, чтобы сообщить об этом редактору.