2013-03-04 88 views
0

我是新來的Java和Java GUI非常新。我有一個非常基本的圖形用戶界面(GUI)。一個基本窗格允許用戶將項目添加到集合。我已經開始設置另一個窗格,我希望有一個ComboBox菜單,列出上述窗格中的項目(即,所有已添加項目的列表),並允許用戶選擇要刪除的項目(通過按鈕))。我試圖將項目數組傳遞給「刪除」窗格,並以多種不同的方式在組合框中使用,但由於組合框是在構造函數中創建的,因此它不會隨着項目的添加而更新。動態創建組合框值Java

什麼是訪問此數組的最佳方式,因爲它是從其他窗格動態更新的?

回答

0

我可以想出幾個方法來實現它。

傳遞兩個面板對通用模型接口的引用的最佳方法之一。這將允許第一個面板向其添加項目,第二個面板在這些更改發生時進行通知並自行更新。

如果您不想將此模型傳遞給安裝上的兩個面板,您可以改用單色,使兩個窗格全局可訪問該模式。我傾向於更喜歡將模型傳遞給構造函數,因爲以這種方式更改模型實現更容易。

一種可能的解決方案是使用DefaultComboBoxModel作爲基本實現。這有能力讓你添加和刪除模型中的元素,但可以讓你分配到組合模型非常容易。但是這將歸結爲您想要通過收藏獲得什麼。

另一種方法是將ChangeListener附加到JTabbedPane。當活動選項卡更改時,可以檢查第一個窗格中的值並將其分配給第二個窗格。

這是一個比較加上那麼第一個,因爲它假定格式的窗格「知道」兩個窗格之間的關係(以及知道哪些兩個窗格需要更新)

+0

謝謝 - 都是偉大的解決方案。 – 2013-03-05 06:48:23