2012-02-19 45 views
0

首先我把...列表<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); 

爲什麼我不能放在ageList到的JComboBox?

錯誤:構造函數的JComboBox>(ArrayList的)是未定義

+0

您會得到什麼錯誤? – birryree 2012-02-19 00:15:42

回答

0

Vector<Integer>試試吧,不參數化的JComboBox。另請參閱the documentation

該文檔說明JComboBox未設置參數,並且它的構造函數爲JComboBox(Vector<?> items)(其中包括其中最適合您的參數)。

2

按照documentationJComboBox只有一個默認的構造,一個接受一個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的類型參數應該是元素的類型的集合-而不是集合本身。但我的快速修復應該仍然有效。

督察,

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

您正在創建一個組合框至極有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); 
+0

非常感謝! – Maydayfluffy 2012-02-19 00:29:43