Всякий раз, когда вам нужно работать с редактируемыми моделями для таких элементов графического интерфейса, всегда полезно использовать модель.Для JComboBox
у вас есть простой в использовании DefaultComboBoxModel
.
. Он работает легко:
DefaultComboBoxModel model = new DefaultComboBoxModel(new String[]{"Item1","Item2","Item3"});
JComboBox comboBox = new JComboBox(model);
, таким образом, у вас есть модель, прикрепленная к выпадающему списку, и онабудет отображать элементы из массива.Всякий раз, когда вам нужно изменить их, просто сделайте:
model.removeAllElements(); // if you need to empty it
model.addElement("New Item1");
model.addElement("New Item2");
model.addElement("New Item3");
model.fireContentsChanged();
, и у вас будут обновлены новые элементы в графическом интерфейсе.
Примечание: если вам нужно вместо этого управлять пользовательскими объектами, то строкиВы можете легко добавить их в JComboBox
(как показано выше), вам просто нужно предоставить собственный метод public String toString()
, который будет управлять строковым представлением.
В вашем примере я не получаюпочему вы читаете все элементы каждый раз, вы можете просто позвонить addItem
с новой строкой, не удаляя все и не добавляя их обратно.