列表<Integer>错误



我首先放入…

List<int> age = new ArrayList<int>();
     for (int i = 1; i <= 100; ++i) {
     age.add(i);
     }
JComboBox ageComboBox = new JComboBox(age);

我得到的错误是。。。此令牌之后应出现令牌int维度的语法错误。。。两人的。

因此,在听取了Eclipse提供的建议后,我得到了。。。

ArrayList<Integer> ageList = new ArrayList<Integer>();
for (int i = 1; i <= 100; ++i) {
ageList.add(i);
}
JComboBox<ArrayList<Integer>> ageEntries = new JComboBox<ArrayList<Integer>>(ageList);

为什么我不能将年龄列表放入JComboBox?

错误:构造函数JComboBox>(ArrayList)未定义

根据文档,JComboBox只有一个默认构造函数,一个接受ComboBoxModel、数组和Vector:的构造函数

JComboBox() 
JComboBox(ComboBoxModel aModel) 
JComboBox(Object[] items) 
JComboBox(Vector<?> items) 

Arraylist不是Vector(也不是List,尽管VectorList)。

无论如何,所以一个快速解决方案可能会像这样:

new JComboBox(ageList.toArray(new Integer[]));

刚刚意识到,您可能使用的是Java 7,其中JCombobox是参数化的。但是,JCombobox的类型参数应该是集合的元素的类型,而不是集合本身的。但我的权宜之计应该仍然有效。

IOW,

JComboBox<Integer> ageEntries = new JComboBox<Integer>(ageList.toArray(new Integer[]));

尝试使用Vector<Integer>,不要参数化JComboBox。另请参阅文件

文档中说JComboBox没有参数化,它有构造函数JComboBox(Vector<?> items)(其中,这个构造函数最适合您)。

您正在创建一个以ArrayList为元素的组合框。我猜你只是想把整数相加,所以直接使用Integer类型。然后传递ageList,它是构造函数中的ArrayList。

jcombobox中有几个构造函数:

  • JComboBox()
  • JComboBox(矢量项)
  • JComboBox(E[]项)
  • JComboBox(ComboBoxModel aModel)

这些都不能用于您要做的事情,ageList不是向量,也不是数组,而是ArrayList。

如果你试图将整数列表添加到组合框中,我建议你创建一个新模型,并将所有整数添加到其中。然后将模型分配给组合框,如下所示:

DefaultComboBoxModel<Integer> model = new DefaultComboBoxModel<Integer>();
for (Integer i : ageList) {
    model.addElement(i);
}
JComboBox<Integer> ageEntries = new JComboBox<Integer>();
ageEntries.setModel(model);

相关内容

最新更新