Jython的摆动supercall类“扩展”的JTextField(Jython swing su

2019-09-17 16:02发布

我试图做类似的自定义文本字段这里的面板 。 但是,如果我尝试调用某些方法超级它进入无限递归导致递归限制(从未有过计算器更花呢问题;)),该方法可用于例如paintadd (这两个我试过了,我想这是一切都继承)。

这里是重要的代码片段:

class inputWithButtons(JLayeredPane):
    def __init__(self):
        self.setLayout(_textFieldWithButtons())

        self._fileField = JTextField()
        self.add(self._fileField, Integer(1))
        self.preferredSize = (0, 40) #TODO: why does minimumSize not work?



    def add(self, component, layer):  #recurses indefinitly
        super(inputWithButtons, self).add(component, layer)
        self.revalidate()

Answer 1:

如果该方法是在各自的Java类的保护,您必须使用以下语法(老实说讨厌这个方法)

self.super__

例如:

from javax.swing import JPanel

class panel(JPanel):
    def paintComponent(self, graphic):
        self.super__paintComponent(graphic)
        # Do something

资源

调用任何其它超类的方法,使用此语法:

SuperClassName.method(self, *args)

随着新的样式类 :

super(panel, self).method(*args)


文章来源: Jython swing supercall to class “extending” JTextField
标签: swing jython