Большинство приложений с графическим интерфейсом имеют панель меню вверху. Он находится чуть ниже строки заголовка окна верхнего уровня. В пакете javax.swing есть сложное средство для создания эффективной системы меню. Он построен с помощью классов JMenuBar, JMenu и JMenuItem .
В следующем примере строка меню предоставляется в окне верхнего уровня. Меню Файл, состоящее из трех кнопок пунктов меню, добавляется в строку меню. Давайте теперь подготовим объект JFrame с макетом, установленным в BorderLayout.
frame = JFrame("JMenuBar example") frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) frame.setLocation(100,100) frame.setSize(400,300) frame.setLayout(BorderLayout())
Теперь объект JMenuBar активируется методом SetJMenuBar ().
bar = JMenuBar() frame.setJMenuBar(bar)
Затем объявляется объект JMenu с заголовком «Файл». Три кнопки JMenuItem добавляются в меню «Файл». При щелчке любого из пунктов меню выполняется функция OnClick () обработчика ActionEvent. Это определяется свойством actionPerformed.
file = JMenu("File") newfile = JMenuItem("New",actionPerformed = OnClick) openfile = JMenuItem("Open",actionPerformed = OnClick) savefile = JMenuItem("Save",actionPerformed = OnClick) file.add(newfile) file.add(openfile) file.add(savefile) bar.add(file)
Обработчик события OnClick () получает имя кнопки JMenuItem с помощью функции gwtActionCommand () и отображает ее в текстовом поле в нижней части окна.
def OnClick(event): txt.text = event.getActionCommand()
Объект меню Файл добавлен в строку меню. Наконец, элемент управления JTextField добавляется внизу объекта JFrame.
txt = JTextField(10) frame.add(txt, BorderLayout.SOUTH)
Весь код menu.py приведен ниже —
from javax.swing import JFrame, JMenuBar, JMenu, JMenuItem, JTextField from java.awt import BorderLayout frame = JFrame("JMenuBar example") frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) frame.setLocation(100,100) frame.setSize(400,300) frame.setLayout(BorderLayout()) def OnClick(event): txt.text = event.getActionCommand() bar = JMenuBar() frame.setJMenuBar(bar) file = JMenu("File") newfile = JMenuItem("New",actionPerformed = OnClick) openfile = JMenuItem("Open",actionPerformed = OnClick) savefile = JMenuItem("Save",actionPerformed = OnClick) file.add(newfile) file.add(openfile) file.add(savefile) bar.add(file) txt = JTextField(10) frame.add(txt, BorderLayout.SOUTH) frame.setVisible(True)
Когда вышеуказанный скрипт выполняется с использованием интерпретатора Jython, появляется окно с меню «Файл». Нажмите на нее, и три ее пункта меню будут раскрыты. Если нажата какая-либо кнопка, ее имя будет отображаться в элементе управления текстового поля.