Подтвердить что ты не робот

Динамически изменять JComboBox

Я извлекаю данные из базы данных успешно. Я также сохранил их в массив String[]. Мне нужно загрузить массив String в качестве элементов JComboBox в ответ на действие ключа. Как я могу перезагрузить элементы JComboBox всякий раз, когда нажата клавиша, так как выбранные значения зависят от нажатой клавиши. Скорее просто мне нужно динамически обновлять элементы JComboBox.

4b9b3361

Ответ 1

DefaultComboBoxModel model = new DefaultComboBoxModel( yourStringArray );
comboBox.setModel( model );

Ответ 2

У вас есть несколько вариантов. Вы можете использовать removeAllItems() (или один из других методов удаления) и addItem(Object anObject) для управления выбранными объектами. Или вы можете реализовать ComboBoxModel и позволить ему обслуживать данные из вашего массива.

Ответ 3

Это демонстрация для иллюстрации модели комбинированных полей по умолчанию

public class ComboPanel extends JPanel {

    JComboBox jcbo;
    // this is constructor
    public ComboPanel(ArrayList<String> items) {
        jcbo = new JComboBox();
        // getting exiting combo box model
        DefaultComboBoxModel model = (DefaultComboBoxModel) jcbo.getModel();
        // removing old data
        model.removeAllElements();

        for (String item : items) {
            model.addElement(item);
        }

        // setting model with new data
        jcbo.setModel(model);
        // adding combobox to panel
        this.add(jcbo);    
    }
}

Надеюсь, это мало поможет:)

Ответ 4

Он также работает без DefaultComboBoxModel...

JComboBox op=new JComboBox(new String[] {"d","e","f"});
op.removeAllItems();
String[] new_entries=new String[] {"a","b","c"}
for (String s : new_entries) {
     op.insertItemAt(s, op.getItemCount());
}
op.setSelectedIndex(0);

Угадайте, какие значения вы увидите...