Jython - Menus

A maioria dos aplicativos baseados em GUI tem uma barra de menus na parte superior. Ele é encontrado logo abaixo da barra de título da janela de nível superior. O pacote javax.swing possui recursos elaborados para construir um sistema de menu eficiente. É construído com a ajuda deJMenuBar, JMenu e JMenuItem Aulas.

No exemplo a seguir, uma barra de menu é fornecida na janela de nível superior. Um menu Arquivo que consiste em três botões de item de menu é adicionado à barra de menus. Vamos agora preparar um objeto JFrame com o layout definido como BorderLayout.

frame = JFrame("JMenuBar example")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(400,300)
frame.setLayout(BorderLayout())

Agora, um objeto JMenuBar é ativado pelo método SetJMenuBar ().

bar = JMenuBar()
frame.setJMenuBar(bar)

Em seguida, um objeto JMenu com a legenda 'Arquivo' é declarado. Três botões JMenuItem são adicionados ao menu Arquivo. Quando qualquer um dos itens de menu é clicado, a função OnClick () do manipulador ActionEvent é executada. É definido com a propriedade 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)

O manipulador de eventos OnClick () recupera o nome do botão JMenuItem pela função gwtActionCommand () e o exibe na caixa de texto na parte inferior da janela.

def OnClick(event):
   txt.text = event.getActionCommand()

O objeto de menu Arquivo é adicionado à barra de menus. Finalmente, um controle JTextField é adicionado na parte inferior do objeto JFrame.

txt = JTextField(10)
frame.add(txt, BorderLayout.SOUTH)

Todo o código de menu.py é fornecido abaixo -

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)

Quando o script acima é executado usando o interpretador Jython, uma janela com o menu Arquivo é exibida. Clique nele e seus três itens de menu aparecerão. Se algum botão for clicado, seu nome será exibido no controle da caixa de texto.