Jython - Menüs

Die meisten GUI-basierten Anwendungen haben oben eine Menüleiste. Es befindet sich direkt unter der Titelleiste des Fensters der obersten Ebene. Das Paket javax.swing verfügt über umfangreiche Funktionen zum Aufbau eines effizienten Menüsystems. Es wird mit Hilfe von konstruiertJMenuBar, JMenu und JMenuItem Klassen.

Im folgenden Beispiel wird im Fenster der obersten Ebene eine Menüleiste bereitgestellt. Ein Menü mit drei Menüelementschaltflächen wird zur Menüleiste hinzugefügt. Bereiten wir nun ein JFrame-Objekt mit dem Layout BorderLayout vor.

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

Jetzt wird ein JMenuBar-Objekt durch die SetJMenuBar () -Methode aktiviert.

bar = JMenuBar()
frame.setJMenuBar(bar)

Als nächstes wird ein JMenu-Objekt mit der Beschriftung 'Datei' deklariert. Dem Menü Datei werden drei JMenuItem-Schaltflächen hinzugefügt. Wenn Sie auf eines der Menüelemente klicken, wird die OnClick () -Funktion des ActionEvent-Handlers ausgeführt. Es wird mit der actionPerformed-Eigenschaft definiert.

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)

Der OnClick () - Ereignishandler ruft den Namen der JMenuItem-Schaltfläche mit der Funktion gwtActionCommand () ab und zeigt ihn im Textfeld am unteren Rand des Fensters an.

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

Das Menüobjekt Datei wird zur Menüleiste hinzugefügt. Schließlich wird am unteren Rand des JFrame-Objekts ein JTextField-Steuerelement hinzugefügt.

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

Der gesamte Code von menu.py ist unten angegeben -

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)

Wenn das obige Skript mit dem Jython-Interpreter ausgeführt wird, wird ein Fenster mit dem Menü Datei angezeigt. Klicken Sie darauf und die drei Menüpunkte werden angezeigt. Wenn Sie auf eine Schaltfläche klicken, wird deren Name im Textfeld angezeigt.