我首先放入…
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
,尽管Vector
是List
)。
无论如何,所以一个快速解决方案可能会像这样:
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);