我想知道的是,如何在Jython类中使用swing创建GUI元素,以便可以从类外部引用它们,并且我可以在创建的对象上使用button.setText("Hello")
之类的语句在另一个班级里面例如:
foo.py:
from javax.swing import *
class Test():
def __init__(self):
frame = JFrame("TEST")
button = JButton("Hey")
frame.add(button)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setSize(300,200)
frame.show()
然后我有另一个名为somethingelse.py的文件:
from foo import *
run = Test()
如果我想使用run.button.setText("Message")
更改按钮文字,我如何组织Test()
课程,以便我可以更改第二个文件somethingelse.py
中的文字。
答案 0 :(得分:1)
您的代码会丢弃它对控件的引用,因此您无法从任何地方访问它们 - frame
和button
是局部变量,__init__
返回后消失
你应该(最低限度地)使它们成为对象成员:
class Test():
def __init__(self):
self.frame = JFrame("TEST")
self.button = JButton("Hey")
self.frame.add(button)
# ...
然后你可以说:
from foo import *
run = Test()
run.button.setText("Message")