Я извлекаю данные из базы данных успешно. Я также сохранил их в массив String[]
. Мне нужно загрузить массив String в качестве элементов JComboBox
в ответ на действие ключа. Как я могу перезагрузить элементы JComboBox
всякий раз, когда нажата клавиша, так как выбранные значения зависят от нажатой клавиши. Скорее просто мне нужно динамически обновлять элементы JComboBox
.
Динамически изменять JComboBox
Ответ 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);
Угадайте, какие значения вы увидите...