我正在實施Java JTree面板。此面板包含樹狀結構的樹狀結構,樹狀結構是樹狀結構(複合材料列表 - 不同類別的列表)。我根據我定義的一組接口從外部jar實現中獲得這些數據結構。如何在節點對象的狀態更改時動態更改JTree視圖?
treenodes包含一個複選框,用戶可以檢查以指示被檢查節點和所有子節點將變爲「活動」,也就是說,由節點表示的對象應該執行某些操作,例如從一個數據庫。
也可以在不激活它們的情況下選擇treenodes,也就是說,沒有檢查複選框。
最重要的是,程序的其他部分也可以切換數據模型對象的激活狀態。所以構建樹模型的數據模型就是激活狀態的來源。這必須通過動態地(取消)選中複選框來反映在樹視圖中。
現在,我該如何實現這個整體?誰應該聽取哪些更改?
我現在已經將所有在節點中的類從包含激活字段的抽象類擴展而來。這是真正的數據源。當此字段更改時,應通知所有訂閱的偵聽器(EventListener),其中包括複選框。
我也有一個TreeSelectionModel,它基於默認的TreeSelectionModel,但擴展了功能來檢查是否需要檢查孩子/父母。
我的問題也許不是很清楚,但這段複雜的代碼也是如此。希望你能幫助。