2013-07-08 38 views
2

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

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

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

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

GUI最初加载通讯簿中的内容。但是,当hashMap被修改时,我想要更新GUI。

+4

看看[观察者模式](http://en.wikipedia.org/wiki/Observer_pattern) – Brian

+2

它取决于是否可以监听数据结构以进行更改。如果是这样,如果数据库可以通知你的变化,那么是的,一个观察者模式可以很好地工作。否则,您可能会被迫轮询数据结构。 –

+2

什么在改变数据结构,它是如何通过GUI获得的? –

回答

0

谢谢大家的解答和建议,我继续用番石榴EventBus,通知GUI更新。

1
  • 给了ContactBook类,你的模式,即与this初始化的SwingPropertyChangeSupport对象。
  • 为相同的类添加并移除将侦听器传递给支持对象的PropertyChangeListener方法。
  • 在任何更改数据的ContactBook方法中,通过触发支持对象来通知侦听器。
  • 让您的GUI将PropertyChangeListener添加到允许响应通知的模型中。

例如: