Создание главного меню

Работа с меню в библиотеке Swing

Неотъемлемой частью современных оконных программ является меню, представляющее собой удобно сгруппированный набор команд. Меню бывает двух типов: главное и контекстное. Главное меню располагается вдоль верхней границы окна и содержит команды, относящиеся ко всему приложению (точнее, все команды, которые можно выполнить, работая с данным окном). Контекстное меню вызывается нажатием правой кнопки мышки на конкретном объекте и содержит команды, которые могут быть применены именно к этому объекту.

Создание главного меню

Главное меню окна представлено в Swing классом JMenuBar. По сути своей этот класс представляет собой панель с менеджером расположения BoxLayout (по горизонтали), в которую можно добавлять не только элементы меню, но и что угодно: хоть выпадающие списки, хоть панели с закладками. Однако для удобства пользования программой предпочтительнее использовать «традиционные» возможности меню.

Главное меню должно быть присоединено к окну методом setJMenuBar(JMenuBarmenuBar).

Элементами главного меню являются обычные меню — выпадающие прямоугольные блоки команд — объекты класса JMenu. Конструктор JMenu(Stringtitle) принимает один параметр: название меню, которое будет отображаться в строке главного меню. *

Меню, в свою очередь, состоит из пунктов меню, представленных классом JMenuItem. По логике работы пункты меню аналогичны кнопке JButton, то есть, при нажатии на него пользователем выполняется какое-то действие.

об особых разновидностях пунктов меню

Создать элемент меню можно пустым конструктором JMenuItem либо (что более востребовано) одним из конструкторов, в которые передается текст и/или значок элемента меню: JMenuItem(Stringtext), JMenuItem(Iconicon), JMenuItem(Stringtext, Iconicon). Конечно, в любой момент текст и значок можно сменить методами setText(Stringtext) и setIcon(Iconicon) соответственно.

Элемент добавляется в меню методом add(JMenuItemitem) класса JMenu. Чтобы отделить группы взаимосвязанных элементов меню, можно добавить между ними разделитель методом addSeparator() класса JMenu.

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

Создадим главное меню окна, состоящее из двух подменю: «Файл» и «Правка», причем в меню «Правка» поместим выпадающее подменю. Кроме того, воспользуемся знаниями о менеджере расположения главного меню, чтобы добавить с правого края значок (наподобие того, как это сделано в браузере InternetExplorer).

SimpleWindow(){ super ("Окно с меню");setDefaultCloseOperation(EXIT_ON_CLOSE);JMenuBarmenuBar = new JMenuBar();JMenufileMenu= new JMenu("Файл");fileMenu.add(new JMenuItem("Новый"));fileMenu.add(new JMenuItem("Открыть", new ImageIcon("1.gif")));fileMenu.add(new JMenuItem("Сохранить"));fileMenu.addSeparator();fileMenu.add(new JMenuItem("Выйти"));JMenu editMenu = new JMenu("Правка");editMenu.add(new JMenuItem("Копировать"));JMenu pasteMenu = new JMenu("Вставить");pasteMenu.add(new JMenuItem("Из буфера"));pasteMenu.add(new JMenuItem("Из файла"));editMenu.add(pasteMenu);menuBar.add(fileMenu);menuBar.add(editMenu);menuBar.add(Box.createHorizontalGlue());menuBar.add(new JLabel(new ImageIcon("2.gif")));setJMenuBar(menuBar);setSize(250,150);}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: