Я использую JList и JComboBox в разных местах. Содержимое обоих меняется динамически.
После создания comboBox вы не можете просто сказать comboBox.setModel (String []), вам нужно создать новую модель и установить для нее comboBox.
То же самое происходит с JList.
Вместо того, чтобы создавать свой собственный Jlist и ComboBox, просто чтобы добавить новый метод с именем .setNewModel (String []), я создал статический метод в своем классе «утилит», который получает String [] и возвращает ListModel.
Так что я могу сделать это:
someComboBox.setModel((ComboBoxModel)UtilityClass.convetToListModel(aStringArray));
Я использую то же самое для JList.
someList.setModel(UtilityClass.convetToListModel(anotherStringArray));
мой вопрос:
Может ли приведение listModel к ComboBoxModel иметь неожиданные последствия?
Если да, то есть ли в любом случае изменить все содержимое comboBox без необходимости преобразования ArrayString в модель?
вот код метода:
public static ListModel convertToListModel(String[] nList)
{
return (new JComboBox(nList).getModel());
}
Программа компилируется и работает нормально, но приведение всегда вызывает у меня сомнения, особенно сложные объекты.
Да, я знаю, что могу расширить JComboBox и JList, чтобы добавить метод, который выполняет свою работу, но требует много дополнительной работы. Почему ComboBox и Jlist не имеют обновления или модификации Model, кроме как для принятия простого массива Strings?