Jython - Menus

La plupart des applications basées sur l'interface graphique ont une barre de menus en haut. Il se trouve juste en dessous de la barre de titre de la fenêtre de niveau supérieur. Le paquet javax.swing a une fonction élaborée pour construire un système de menu efficace. Il est construit avec l'aide deJMenuBar, JMenu et JMenuItem Des classes.

Dans l'exemple suivant, une barre de menus est fournie dans la fenêtre de niveau supérieur. Un menu Fichier composé de trois boutons d'élément de menu est ajouté à la barre de menus. Préparons maintenant un objet JFrame avec la disposition définie sur BorderLayout.

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

Désormais, un objet JMenuBar est activé par la méthode SetJMenuBar ().

bar = JMenuBar()
frame.setJMenuBar(bar)

Ensuite, un objet JMenu ayant la légende «File» est déclaré. Trois boutons JMenuItem sont ajoutés au menu Fichier. Lorsque vous cliquez sur l'un des éléments de menu, la fonction OnClick () du gestionnaire ActionEvent est exécutée. Il est défini avec la propriété 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)

Le gestionnaire d'événements OnClick () récupère le nom du bouton JMenuItem par la fonction gwtActionCommand () et l'affiche dans la zone de texte en bas de la fenêtre.

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

L'objet de menu Fichier est ajouté à la barre de menus. Enfin, un contrôle JTextField est ajouté au bas de l'objet JFrame.

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

Le code complet de menu.py est donné ci-dessous -

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)

Lorsque le script ci-dessus est exécuté à l'aide de l'interpréteur Jython, une fenêtre avec le menu Fichier apparaît. Cliquez dessus et ses trois éléments de menu se dérouleront. Si un bouton est cliqué, son nom sera affiché dans le contrôle de zone de texte.