列表<整数>错误</integer>

时间:2012-02-19 00:14:41

标签: java syntax-error

首先我放入......

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);

为什么我不能将ageList放入JComboBox?

错误:构造函数JComboBox&gt;(ArrayList)未定义

3 个答案:

答案 0 :(得分:2)

根据documentation 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[]));

答案 1 :(得分:0)

使用Vector<Integer>试用,不要对JComboBox进行参数化。另请参阅the documentation

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

答案 2 :(得分:0)

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

jcombobox中有一些构造函数:

  • 的JComboBox()
  • JComboBox(矢量项目)
  • JComboBox(E [] items)
  • 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);