我正在构建一个包含 GUI 和模型的应用程序。当模型中的字段发生更改时,我正在使用观察者模式(使用 java 的内置接口)来更新 GUI。
这通常工作正常,但我有一种情况,模型中的特定字符串变量(特别是文件的 url)可以由两个单独的 JTextField(swing)更改,其内容实际上反映了模型变量的值有问题。
我遇到的问题来自这样一个事实,即其中一个 JTextField 的更改需要更新模型的状态以及另一个 JTextField 的内容。我的模型确保仅在模型状态发生变化的情况下才向观察者发送通知。但是,修改 JTextFields 的过程涉及将其文本内容清空然后重置它。
无需赘述,其结果是更新/通知过程陷入无限循环。我通过为这个特定问题搁置观察者模式暂时解决了这个问题,但我想知道是否有人可以提出一种巧妙的方法来确保特定组件不会被源自同一组件的更改“更新”。
任何帮助表示赞赏。