当前位置: 首页 > 知识库问答 >
问题:

为什么GUI不在观察者模式中更新?

梁丘亦
2023-03-14

我有一个Observable类,它在字符串变化时通知observer。在观察者的update方法中,更新的字符串可以打印到控制台。但是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

}

共有1个答案

许阿苏
2023-03-14

我打赌您可能忽略了在观察者上调用addobserver(),或者忽略了在observable中调用setchanged()notifyobservers()。这里展示了一个完整的例子。

 类似资料:
  • 观察者模式是定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。

  • 类,这三个类从它继承:。 应用程序希望在12AM到达时发送一条消息。 书中推荐观察者模式。指出如果增加新的类:扩展消息,会影响类时钟的实现。但我不明白为什么。类Clock将保存对象的集合,如果我们要添加一个新的inherit类,它不会更改Clock类。 如果有人能解释上面的例子,或者给出一个更好的例子,我将不胜感激。

  • 主要内容:介绍,实现,Subject.java,Observer.java,BinaryObserver.java,OctalObserver.java,HexaObserver.java,ObserverPatternDemo.java当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知

  • 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。 何时使用:一个对象(目标对象)

  • 观察者模式是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实时事件处理系统。 定义一个目标构造函数,并实现绑定、解绑和触发等方法: function Subject() { this.events = {}; this.count = 0; }​ Subj

  • 问题 当一个事件发生时你不得不向一些对象发布公告。 解决方案 使用观察者模式(Observer Pattern)。 class PostOffice constructor: () -> @subscribers = [] notifyNewItemReleased: (item) -> subscriber.callback(item) for s