Swing 如何访问不可编辑JComboBox中的项,以便在选择时运行方法?

Swing 如何访问不可编辑JComboBox中的项,以便在选择时运行方法?,swing,jython,Swing,Jython,我懂一点Python,但不幸的是没有Java。我正在尝试使用一个最小的Jython示例,每次选择JComboBox中的一项时都会执行一个方法。本能告诉我应该为每个项设置actionPerformed=object,其中object是我想要运行的方法的名称。我在网上找到了一个JMenuItems的示例,我成功地做到了: menubar = swing.JMenuBar() optionMenu = swing.JMenu('Option') optionsList = ['First', 'Sec

我懂一点Python,但不幸的是没有Java。我正在尝试使用一个最小的Jython示例,每次选择JComboBox中的一项时都会执行一个方法。本能告诉我应该为每个项设置actionPerformed=object,其中object是我想要运行的方法的名称。我在网上找到了一个JMenuItems的示例,我成功地做到了:

menubar = swing.JMenuBar()
optionMenu = swing.JMenu('Option')
optionsList = ['First', 'Second', 'Third']
for option in optionsList:
    choice = swing.JMenuItem(option)
    choice.actionPerformed = self.doUponSelection
    optionMenu.add(choice)
menuBar.add(optionMenu)
当我尝试与swing.jcomboxItem类似的东西时,它告诉我不存在这样的属性。使用
dir()
我找到了JCheckBoxMenuItem、JMenuItem和JRadioButtonMenuItem的javax.swing属性。有人知道我如何访问JList或JComboBox的组件吗

注意:我可以访问Jython 2.5.0


编辑:我看过Java文档(我不理解代码),它明确地描述了添加actionListener,但我不认为这应该在Jython中完成。我知道Jython JButtons有一个actionPerformed属性,它似乎实现了actionListener并执行动作(结合Java步骤)。如果触发事件的是JComboBox本身,我会更加困惑,因为我尝试使用
myJComboBox.actionPerformed=self.doUponSelection
,它给了我一个类型错误,说它是只读属性。我可以使用
myJButton.actionPerformed=self.doUponSelection

ActionListener
添加到
JComboBox
本身。进行选择时,将触发动作事件。在侦听器的代码中,只需向
JComboBox
询问其所选项目,以了解哪个项目是新选择的项目


阅读

我不知道Jython,但是对于Java swing JComboBox控件,它是控件本身被告知更改的。您可以向控件添加
itemstener
。看见