2012-02-19 3 views
0

Сначала я вставил ...Списка <Integer> ошибка

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

ошибки я получил ... Ошибку синтаксиса на лексемы ИНТА размеров ожидаемых после этого маркеров ... на два-х.

Таким образом, после принятия предложения, предоставляемые 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

ответ

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, хотя Vector - List).

Во всяком случае, так быстро исправить может пойти что-то вроде:

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

Просто понял, вы, вероятно, на Java 7, где JComboBox является параметризованных. Тем не менее, тип paramater для JCombobox должен быть типом элементов коллекции- не самой коллекции. Но мое быстрое решение должно по-прежнему работать.

IOW,

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

Вы создаете выпадающий которым есть ArrayList в качестве элементов. Я предполагаю, что вы просто хотите добавить целые числа, поэтому используйте тип Integer напрямую. Затем вы передаете ageList, который является ArrayList в конструкторе.

Есть несколько конструкторов в JComboBox:

  • JComboBox()
  • JComboBox (Vector элементы)
  • JComboBox (E [] элементы)
  • JComboBox (ComboBoxModel Amodel)

Ничего из того, что вы пытаетесь сделать, ageList не является вектором или массивом, его ArrayList.

Если вы пытаетесь добавить список целых чисел в combobox, я предлагаю вам создать новую модель и добавить к ней все свои целые числа. Затем назначьте модель в поле со списком, например:

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

JComboBox<Integer> ageEntries = new JComboBox<Integer>(); 
ageEntries.setModel(model); 
+0

Большое вам спасибо! – Maydayfluffy

Смежные вопросы