Как заполнить JComboBox с помощью ArrayList?
Мне нужно заполнить JComboBox ArrayList. Есть какой-либо способ сделать это?
- Java Подождите, пока stream завершится
- Расширяет JFrame и создает его внутри программы
- Как приостановить и возобновить stream в Java из другого streamа
- Как прокручивать несколько объектов одновременно?
- Как сделать JButton в JTable-ячейке щелчком мыши?
- Несколько строк заголовка JTable
- Как изменить цвет конкретных слов в JTextPane?
- JPanel Padding в Java
Используйте метод toArray()
classа ArrayList и передайте его в конструктор JComboBox
Дополнительную информацию см. В JavaDoc и учебнике .
Элегантный способ заполнить поле со списком :
List ls = new ArrayList (); jComboBox.setModel(new DefaultComboBoxModel(ls.toArray()));
Мне не нравится принятый ответ или комментарий @fivetwentysix относительно того, как это решить. Он получает один метод для этого, но не дает полного решения использовать toArray. Вам нужно использовать toArray и дать ему аргумент, который представляет собой массив правильного типа и размера, так что вы не получите массив объектов. Пока массив объектов будет работать, я не думаю, что это лучшая практика на строго типизированном языке.
String[] array = arrayList.toArray(new String[arrayList.size()]); JComboBox comboBox = new JComboBox(array);
Кроме того, вы также можете поддерживать сильную типизацию, просто используя цикл for.
String[] array = new String[arrayList.size()]; for(int i = 0; i < array.length; i++) { array[i] = arrayList.get(i); } JComboBox comboBox = new JComboBox(array);
Я считаю, что вы можете создать новый вектор с помощью ArrayList и передать его конструктору JCombobox.
JComboBox combobox = new JComboBox (new Vector (myArrayList));
Мой пример – это только строки.
DefaultComboBoxModel DLM = new DefaultComboBoxModel(); for (int i = 0; i < .size(); i++) { DLM.addElement( .get(i).getField()); } .setModel(DLM);
Понятный code.Edit <> по мере необходимости.
Для справок:
//first create the array; String[] comboBoxArray = {"item1","item2","item3"}; //create JComboBox and assign it to the comboBox JComboBox comboBox1 = new JComboBox(comboBoxArray);
я думаю, что это решение
ArrayList libel = new ArrayList
(); try { SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session s = sf.openSession(); s.beginTransaction(); String hql = "FROM table "; org.hibernate.Query query = s.createQuery(hql); libel= (ArrayList
) query.list(); Iterator it = libel.iterator(); while(it.hasNext()) { table cat = (table) it.next(); cat.getLibCat();//table colonm getter combobox.addItem(cat.getLibCat()); } s.getTransaction().commit(); s.close(); sf.close(); } catch (Exception e) { System.out.println("Exception in getSelectedData::"+e.getMessage());