首先我放入......
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)未定义
答案 0 :(得分:2)
根据documentation JComboBox
,只有一个默认构造函数,一个接受ComboBoxModel
,一个数组和一个Vector
:
JComboBox()
JComboBox(ComboBoxModel aModel)
JComboBox(Object[] items)
JComboBox(Vector<?> items)
Arraylist
不是Vector
(也不是List
,但Vector
是List
。
无论如何,快速修复可能会像:
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中有一些构造函数:
没有任何一个可以用于你想要做的事情,ageList不是一个向量,也不是一个数组,它是一个ArrayList。
如果您尝试将整数列表添加到组合框中,我建议您创建一个新模型并将所有整数添加到组合框中。然后将模型分配给组合框,如下所示:
DefaultComboBoxModel<Integer> model = new DefaultComboBoxModel<Integer>();
for (Integer i : ageList) {
model.addElement(i);
}
JComboBox<Integer> ageEntries = new JComboBox<Integer>();
ageEntries.setModel(model);