Как создать меню в интерфейсе Java

Как создать меню в интерфейсе JavaСоздать меню в Java достаточно просто. Недавно мы с вами говорили о том как создать всплывающее меню в Java. Сначала создается строка меню.

Строка меню — это обычный компонент, который можно разместить где угодно. Как правило, его помещают в верхнюю часть фрейма с помощью метода setJMenuBar():

Для каждого меню создается свой объект:

Меню верхнего уровня помещается в строке меню:

Затем в объект меню добавляются пункты, разделители и подменю:

Как создать меню в интерфейсе JavaРис.1. Меню и подменю

Разделители показаны на рис.1. Они отображаются под пунктами Paste(Вставка) и Rad-only(Только для чтения).

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

Существует удобный метод JMenu.add(String), позволяющий добавлять новый пункт в конец меню, например, следующим образом:

Этот метод возвращает созданный пункт, для которого можно легко задать обработчик:

Довольно часто пункты меню связываются с командами, которые могут активировать другие элементы пользовательского интерфейса, например, кнопки. В ранних статьях говорилось о том, как задаются команды с помощью объектов Action. Следует определить класс, реализующий интерфейс Action. Обычно для этого класс расширяет AbstractAction. Затем в конструкторе AbstractAction указывается метка пункта меню и переопределяется метод actionPerformed(), что позволяет реализовать обработку события, связанного с данным пунктом. Например:

Затем добавляется в меню:

В результате выполнения данного выражения в меню добавляется новый пункт. Объект Action становится обработчиком. Такой способ заменят следующие строки кода:

В программах для Windows и Macintosh меню обычно определяются во внешних файлах ресурсов и связываются с приложениями с помощью идентификаторов ресурсов. Меню можно создавать непосредственно в программе, однако, как правило, так не поступают.

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