2013-07-08 57 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添加到允許響應通知的模型中。

例如: