Jython question concerning actionPerformed

Ype Kingma ykingma at accessforall.nl
Mon Feb 4 20:34:54 CET 2002


Mishre,

you wrote:
> 
> I have the following code in Jython running on JDK 1.4, which looks
> like it should work, but isn't:
> 
> def actionPerformed(self,event):
>     if event.getActionCommand() == "Exit":
>         java.lang.System.exit(0)
>     elif event.getActionCommand() == "comboBoxChanged":
>         print event
> 
> Then later on I have:
> 
> self.catCombo = javax.swing.JComboBox(actionPerformed=self.actionPerformed)
>

Have a look at http://www.jython.org/docs/properties.html:
you can pass an ActionListener object, or a function with one argument.

You might try one of these: (untested)

self.catCombo = javax.swing.JComboBox(self)
# This assumes that actionPerformed method is available
# and that the current class implements ActionListener.

or

self.catCombo = javax.swing.JComboBox(actionPerformed = (lamda event, self=self:
                                                          self.actionPerformed(event))
# No need to inherit from ActionListener here.

I prefer to use the last form since it allows to choose a method from the current
class to be used as action listener.
You might call eg. self.exit(event) from the lambda.
 
> 
> Does anyone have any ideas on what to try next?
> 
> Thanks,
> 

My pleasure,
Ype



More information about the Python-list mailing list