2013-03-04 64 views
0

我是新来的Java和Java GUI非常新。我有一个非常基本的图形用户界面(GUI)。一个基本窗格允许用户将项目添加到集合。我已经开始设置另一个窗格,我希望有一个ComboBox菜单,列出上述窗格中的项目(即,所有已添加项目的列表),并允许用户选择要删除的项目(通过按钮))。我试图将项目数组传递给“删除”窗格,并以多种不同的方式在组合框中使用,但由于组合框是在构造函数中创建的,因此它不会随着项目的添加而更新。动态创建组合框值Java

什么是访问此数组的最佳方式,因为它是从其他窗格动态更新的?

回答

0

我可以想出几个方法来实现它。

传递两个面板对通用模型接口的引用的最佳方法之一。这将允许第一个面板向其添加项目,第二个面板在这些更改发生时进行通知并自行更新。

如果您不想将此模型传递给安装上的两个面板,您可以改用单色,使两个窗格全局可访问该模式。我倾向于更喜欢将模型传递给构造函数,因为以这种方式更改模型实现更容易。

一种可能的解决方案是使用DefaultComboBoxModel作为基本实现。这有能力让你添加和删除模型中的元素,但可以让你分配到组合模型非常容易。但是这将归结为您想要通过收藏获得什么。

另一种方法是将ChangeListener附加到JTabbedPane。当活动选项卡更改时,可以检查第一个窗格中的值并将其分配给第二个窗格。

这是一个比较加上那么第一个,因为它假定格式的窗格“知道”两个窗格之间的关系(以及知道哪些两个窗格需要更新)

+0

谢谢 - 都是伟大的解决方案。 – 2013-03-05 06:48:23