Swing JLabel上的Jython鼠标侦听器导致TypeError

Swing JLabel上的Jython鼠标侦听器导致TypeError,swing,mouseevent,awt,jython,Swing,Mouseevent,Awt,Jython,我正在Jython中制作一个应用程序,尝试在JLabel上捕获鼠标事件。我有一个包含JLabel的JFrame,但当我尝试向它添加鼠标侦听器时,我得到: TypeError: write only attribute 主窗口: class Commander(JFrame): ... self.image = ImageIcon() self.label = JLabel(self.image) self.mouseListener = ScreenMouseL

我正在Jython中制作一个应用程序,尝试在JLabel上捕获鼠标事件。我有一个包含JLabel的JFrame,但当我尝试向它添加鼠标侦听器时,我得到:

TypeError: write only attribute
主窗口:

class Commander(JFrame):
    ...
    self.image = ImageIcon()
    self.label = JLabel(self.image)
    self.mouseListener = ScreenMouseListener()
    self.label.addMouseListener(self.mouseListener) <- This line causes the TypeError
    ...
寻找错误使我陷入困境,但我不明白为什么会发生这种情况。哪个属性是只写的


编辑:删除导致错误的行后,我注意到mousePressed函数被调用了!mouseListener可能是JFrame的一个属性吗?

我认为JFrame.mouseListener是一个只写属性,即没有实现get函数,因此当它被传递给self.label.addMouseListener时,它无法读取。 通过执行以下操作来解决此问题:

self.label.addMouseListener(ScreenMouseListener())

我相信JFrame.mouseListener是一个只写属性,即没有实现get函数,因此当它被传递给self.label.addMouseListener时,它无法读取。 通过执行以下操作来解决此问题:

self.label.addMouseListener(ScreenMouseListener())