【发布时间】:2016-02-01 11:49:41
【问题描述】:
我有 Observable 类,它在字符串更改时通知观察者。在观察者的更新方法中,更新后的字符串可以打印到控制台。但是 GUI 没有相应地更新。为什么?
public void update(Observable o, Object arg) {
String s=SwimmingCompetition.init().getScoreData().getResults();
System.out.println(s); //this works
jTextArea1.setText(s); //this not
}
【问题讨论】:
-
我们无法根据您发布的内容来判断问题所在。猜测包括——你可能会占用 Swing 事件调度线程,如果你这样做,GUI 将完全不响应用户交互,你可能会通过创建多个实例来隐藏 GUI,并更改非可视化实例,...您将需要发布更多相关代码....多少?很难说,但不能太多也不能太少! ;) 最好是minimal reproducible example。
-
与您的问题无关,但我很好奇您为什么不在
update(...)方法中使用arg参数?另外,您为什么要调用 SwingCompetition 的静态方法,更不用说init()类型的方法?这让我对你的整体程序设计感到担忧。 -
在您更新/改进您的问题后,请在评论中使用
@Hovercraft回复我。谢谢。
标签: java swing observer-pattern