动态创建ComboBox值Java

时间:2013-03-04 02:37:01

标签: java user-interface jcombobox

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

访问此阵列的最佳方法是什么,因为它是从另一个窗格动态更新的?

1 个答案:

答案 0 :(得分:0)

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

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

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

一种可能的解决方案是使用DefaultComboBoxModel作为基本实现。这样就可以让你在模型中添加和删除元素,但是可以让你很容易地分配给它的模型。但这将归结为您希望通过该系列实现的目标。

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

这比第一个更加耦合,因为它假定选项卡式窗格“知道”两个窗格之间的关系(并且知道哪两个窗格需要更新)

相关问题