0

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

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

4

1 回答 1

0

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

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

如果您不想在设置时将此模型传递给两个面板,则可以改用单例,从而使两个面板都可以全局访问模态。我倾向于将模型传递给构造函数,因为这样更容易更改模型实现。

一种可能的解决方案是使用 aDefaultComboBoxModel作为基础实现。这允许您从模型中添加和删除元素,但允许您非常轻松地分配给组合,因为它是模型。但这将归结为您希望通过该系列实现的目标。

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

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

于 2013-03-04T02:50:44.950 回答