Jython swing supercall到班级;扩展;文本框
我正在尝试创建一个类似的自定义文本字段。但是,如果我尝试为某些方法调用super,它将进入无限递归,导致递归限制(对于stackoverflow,没有比这更合适的问题了),这些方法是例如Jython swing supercall到班级;扩展;文本框,swing,jython,Swing,Jython,我正在尝试创建一个类似的自定义文本字段。但是,如果我尝试为某些方法调用super,它将进入无限递归,导致递归限制(对于stackoverflow,没有比这更合适的问题了),这些方法是例如paint和add(我尝试过这两种方法,我想这一切都是继承的) 以下是重要的代码摘录: class inputWithButtons(JLayeredPane): def __init__(self): self.setLayout(_textFieldWithButtons())
paint
和add
(我尝试过这两种方法,我想这一切都是继承的)
以下是重要的代码摘录:
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()
如果该方法在其各自的java类中受到保护,则必须使用以下语法(诚实地说,讨厌该方法) 例: 要调用任何其他超类方法,请使用以下语法:
SuperClassName.method(self, *args)
与:
我无法测试这一点,因为它的来源是我够不着的,但它听起来像是正确的答案。
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)