Моя конечная цель - иметь JList, который обновляет его содержимое во время выполнения, и я нашел решение, которое работает с этого сообщения here on SO, однако мне любопытно, почему моя оригинальная идея не сделала.Использование метода JList .setModel() с классом в качестве аргумента
В настоящее время, у меня есть что-то вроде этой установки, и она работает:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
Ниже был мой первоначальный план. Я хотел, чтобы класс, который реализовал ListModel, передавался как аргумент, надеясь, что он обновит JList.
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
или
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
Ни одна из этих работ, которая сбивает с толку меня. Могут ли эти последние два метода работать как-то так, код настолько чище.
Спасибо.
Передача класса ListModel вместо экземпляра этого класса является ошибкой компилятора. Почему вы сбиваете с толку? – Istao
Я думаю, что моя демо-версия кода немного вводит в заблуждение. То, что я делаю, я изменю код, чтобы сделать это более понятным. – Koop
Почему не работают эти последние два метода? Пожалуйста, предоставьте ошибку, которую вы видите. Если 'SomeClass' расширяет' ListModel', то оба этих метода будут работать. –