Mi objetivo final es tener una JList que refresque su contenido en tiempo de ejecución, y he encontrado una solución que funciona desde esta publicación here on SO, pero tengo curiosidad por saber por qué mi idea original no.Usando el método JList .setModel() con una clase como argumento
A partir de ahora, tengo algo parecido a esta configuración y funciona:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
abajo era mi plan original. Quería tener una clase que implementara ListModel pasar como un argumento, con la esperanza de que actualice la JList.
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
o
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
Ninguno de estos trabajos, lo que me confunde. Si estos dos últimos métodos funcionan de alguna manera, el código es mucho más limpio.
Gracias.
Pasar una clase ListModel en lugar de una instancia de esta clase es un error del compilador. ¿Por qué estás confundido? – Istao
Creo que mi demo del código es un poco engañosa, lo siento. Eso es lo que estaba haciendo, voy a cambiar el código para que quede más claro. – Koop
¿Por qué no funcionan esos dos últimos métodos? Por favor ingrese el error que está viendo. Si 'SomeClass' extiende' ListModel', entonces ambos métodos funcionarán. –