【问题标题】:Jython mouse listener on JLabel results in TypeErrorJLabel 上的 Jython 鼠标侦听器导致 TypeError
【发布时间】:2012-01-02 23:57:27
【问题描述】:

我正在 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
    ...

鼠标监听器扩展了 MouseAdapter:

class ScreenMouseListener(MouseAdapter):
    def mousePressed(self, event):
        print "Mouse pressed"

搜索错误将我带到PyBeanEvent,但我不明白为什么会发生这种情况。哪个属性是只写的?

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

【问题讨论】:

    标签: swing mouseevent awt jython


    【解决方案1】:

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

    self.label.addMouseListener(ScreenMouseListener())
    

    【讨论】:

      猜你喜欢
      • 2012-08-01
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      相关资源
      最近更新 更多