Jython 简明教程

Jython - Menus

大多数基于GUI的应用程序在顶部有一个菜单栏。它就在顶层窗口的标题栏下面。javax.swing包有完善的构建有效菜单系统的功能。利用 JMenuBar, JMenuJMenuItem 类的帮助对其进行构建。

在以下示例中,在顶层窗口提供了菜单栏。菜单栏中添加了一个包含三个菜单项目按钮的文件菜单。现在让我们准备好一个带布局设置成BorderLayout的JFrame对象。

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

现在,通过SetJMenuBar()方法激活了一个JMenuBar对象。

bar = JMenuBar()
frame.setJMenuBar(bar)

接下来,声明了一个标题为“文件”的JMenu对象。三个JMenuItem按钮添加到文件菜单中。当单击任何菜单项时,执行ActionEvent处理程序OnClick()函数。它通过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)

OnClick()事件处理程序通过gwtActionCommand()函数检索JMenuItem按钮的名称,并显示在窗口底部的文本框中。

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

文件菜单对象被添加到菜单栏中。最后,一个JTextField控件被添加到JFrame对象的底部。

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

menu.py的整个代码如下所示 −

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)

当使用Jython解释器执行上述脚本时,将会显示一个带有文件菜单的窗口。单击它,它的三个菜单项将会下拉。如果单击了任何按钮,它的名称将会显示在文本框控件中。

jython interpreter