Jython - Menús

La mayoría de las aplicaciones basadas en GUI tienen una barra de menú en la parte superior. Se encuentra justo debajo de la barra de título de la ventana de nivel superior. El paquete javax.swing tiene una elaborada facilidad para construir un sistema de menú eficiente. Está construido con la ayuda deJMenuBar, JMenu y JMenuItem Clases.

En el siguiente ejemplo, se proporciona una barra de menú en la ventana de nivel superior. Se agrega a la barra de menú un menú Archivo que consta de tres botones de elementos de menú. Preparemos ahora un objeto JFrame con el diseño establecido en BorderLayout.

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

Ahora, el método SetJMenuBar () activa un objeto JMenuBar.

bar = JMenuBar()
frame.setJMenuBar(bar)

A continuación, se declara un objeto JMenu que tiene el título "Archivo". Se agregan tres botones JMenuItem al menú Archivo. Cuando se hace clic en cualquiera de los elementos del menú, se ejecuta la función OnClick () del controlador ActionEvent. Se define con la propiedad 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)

El controlador de eventos OnClick () recupera el nombre del botón JMenuItem mediante la función gwtActionCommand () y lo muestra en el cuadro de texto en la parte inferior de la ventana.

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

El objeto de menú Archivo se agrega a la barra de menú. Finalmente, se agrega un control JTextField en la parte inferior del objeto JFrame.

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

El código completo de menu.py se da a continuación:

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)

Cuando se ejecuta el script anterior utilizando el intérprete de Jython, aparece una ventana con el menú Archivo. Haga clic en él y sus tres elementos de menú se desplegarán. Si se hace clic en cualquier botón, su nombre se mostrará en el control del cuadro de texto.