【问题标题】:How to populate a JComboBox from an ArrayList?如何从 ArrayList 填充 JComboBox?
【发布时间】:2014-10-02 10:28:30
【问题描述】:

我有一个对象的 ArrayList,所有对象都有名称。如何使用这些名称填充 JComboBox?我在网上查了一下,到目前为止一无所获。有一些资源,但它们倾向于使用硬编码版本,这没什么用。

由于我还没有任何代码显示我在做什么,所以我无法附上任何代码。

【问题讨论】:

  • 这取决于您所说的“名称”。类名、特定于对象的私有名称字符串,还是变量名?
  • 对不起。变量名。
  • 变量名称几乎毫无价值,实际上甚至不存在于 ArrayList 中,因为它包含对 objects 的引用而不是变量。还要理解,许多变量,都具有不同的名称,可以引用同一个对象,在这种情况下,哪个变量“名称”是正确的?如果 Marco 的回答不能解决您的问题,您需要提供更多信息。
  • 您创建自己的 ComboBoxModel 来包装数据...

标签: java swing arraylist jcombobox


【解决方案1】:

JComboBoxArrayVector 一起使用。您应该使用ArrayList 中的.toArray() 方法来创建一个数组。

String[] names = namesList.toArray(new String[0]);

然后使用names

【讨论】:

  • 这成功了!但是,我使用了 String[] namesArray = names.toArray(new String[names.size()]);然后通过使用 JComboBox box = new JComboBox(namesArray.toString()) 我让它工作。谢谢!
【解决方案2】:

您可以在构建时直接喂入物品: JComboBox cb = new JComboBox(yourArrayList.toArray());(您可能需要在此处检查类型参数化)

JComboBox 具有 Array 和 Vector 的构造函数作为输入。在您的情况下,转换为 Array 而不是转换为 Vector 应该更容易。

或初始化后:

for (String item : yourArrayList) {
    cb.addItem(item);
}

http://docs.oracle.com/javase/7/docs/api/javax/swing/JComboBox.html

【讨论】:

    猜你喜欢
    • 2019-08-14
    • 2010-11-20
    • 2013-03-31
    • 2014-10-03
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多