Jython 菜单

Jython 菜单

大多数基于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())

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

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()

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

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 菜单

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程