代码之家  ›  专栏  ›  技术社区  ›  Diana E

动态创建组合框值Java

  •  0
  • Diana E  · 技术社区  · 12 年前

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

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

    1 回复  |  直到 12 年前
        1
  •  0
  •   MadProgrammer    12 年前

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

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

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

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

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

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