确保Swing GUI与底层数据结构保持同步



如何确保Swing GUI与可能随时更改的底层数据结构保持同步?

让我们假设我们有一个在任何时间点都可以修改的数据结构,现在我希望显示数据结构内容的GUI能够自动反映这些更改。如何使它们保持同步?

我试图在这里使用HashMap来实现一个联系人簿来存储联系人。GUI显示通讯录的内容。

在类ContactBook中,我有映射以及添加或删除条目的方法。

GUI最初从通讯录加载内容。但是当hashMap被修改时,我希望GUI被更新。

  • 为您的模型ContactBook类提供一个用this初始化的SwingPropertyChangeSupport对象
  • 为同一类提供add和remove PropertyChangeListener方法,这些方法将侦听器传递给支持对象
  • 在ContactBook的任何更改数据的方法中,都可以通过激发支持对象来通知侦听器
  • 让GUI向模型中添加PropertyChangeListener,使其能够响应通知

例如:

  • 通过不同的线程访问变量和回转组件
  • 内部类的射击事件,扩展SwingWorker

感谢大家的回答和建议,我继续使用Guava EventBus通知GUI进行更新。

最新更新