Я немного знаю Python, но, к сожалению, нет Java.Я пытаюсь заставить работать минимальный пример Jython, где метод выполняется каждый раз, когда выбирается элемент в моем JComboBox.Instinct говорит мне, что я должен установить 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.JComboBoxItem, он сказал, что такого атрибута не существует.Используя dir()
, я нашел атрибуты javax.swing JCheckBoxMenuItem, JMenuItem и JRadioButtonMenuItem.Кто-нибудь знает, как я могу получить доступ к компонентам JList или JComboBox?
Примечание: у меня есть доступ к Jython 2.5.0
Редактировать: я видел документацию по Java (не то, что японимать код), который описывает явное добавление actionListener, но не думал, что это должно быть сделано в Jython.Я знаю, что Jython JButtons имеет атрибут actionPerformed, который, по-видимому, реализует actionListener и выполняет действия (объединяя шаги Java).Если сам JComboBox будет запускать событие, я еще больше запутался, потому что я попытался использовать myJComboBox.actionPerformed = self.doUponSelection
, и он дал мне TypeError, говоря, что это атрибут только для чтения.У меня отлично работает с myJButton.actionPerformed = self.doUponSelection
.