Jython - menu

Większość aplikacji opartych na graficznym interfejsie użytkownika ma pasek menu u góry. Znajduje się tuż pod paskiem tytułu okna najwyższego poziomu. Pakiet javax.swing zawiera rozbudowane narzędzie do tworzenia wydajnego systemu menu. Jest zbudowany za pomocąJMenuBar, JMenu i JMenuItem zajęcia.

W poniższym przykładzie pasek menu znajduje się w oknie najwyższego poziomu. Do paska menu zostanie dodane menu Plik składające się z trzech przycisków pozycji menu. Przygotujmy teraz obiekt JFrame z układem ustawionym na BorderLayout.

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

Teraz obiekt JMenuBar jest aktywowany przez metodę SetJMenuBar ().

bar = JMenuBar()
frame.setJMenuBar(bar)

Następnie deklarowany jest obiekt JMenu z podpisem „Plik”. Do menu Plik dodano trzy przyciski JMenuItem. Kliknięcie dowolnego elementu menu powoduje wykonanie funkcji OnClick () obsługi zdarzenia ActionEvent. Jest definiowany za pomocą właściwości 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)

Procedura obsługi zdarzeń OnClick () pobiera nazwę przycisku JMenuItem za pomocą funkcji gwtActionCommand () i wyświetla ją w polu tekstowym u dołu okna.

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

Obiekt menu Plik zostanie dodany do paska menu. Na koniec kontrolka JTextField jest dodawana u dołu obiektu JFrame.

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

Cały kod menu.py jest podany poniżej -

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)

Kiedy powyższy skrypt jest wykonywany przy użyciu interpretera Jython, pojawia się okno z menu Plik. Kliknij go, a pojawią się trzy elementy menu. Jeśli zostanie kliknięty dowolny przycisk, jego nazwa zostanie wyświetlona w kontrolce pola tekstowego.