JList como hago para..

Iniciado por Xedrox, 17 Julio 2011, 22:29 PM

0 Miembros y 1 Visitante están viendo este tema.

Xedrox

Tengo un JList que se carga con un vector de "Strings", pero supongamos que durante el proceso ese vector cambia, como hago para mantener actualizado al JList.


Muchas Gracias
salutes

sapito169

Eso tiene una solución la que todo programador promedio aria la mas común pero con el defecto de que no es java.util.list ni tampoco es type safe pero a su ves la mas fácil y la que no requiere librerías externas

Pues simplemente usa la clase defaultListModel


    1 DefaultListModel model = new DefaultListModel();
    2 list = new JList(model);
    3 for (int i = 0; i < 15; i++)
      model.addElement("Element " + i);

1 se crea un defaultlistmodel a partir de ahora llamado modelo esta es una lista que avisa a los cambios al jlist (la vista)
2 se crea un jlist que use la lista que creamos
3 ahora puedes modificar el modelo a tu antojo y mejicamente (la realidad es que deberías preguntarte como lo hace pero generalmente a nadie le importa conocer bien y a profundidad como funcionan las cosas) se actualizara en el formulario

-en primer lugar cuando un objeto avisa al resto de su estado para que se actualicen ese objeto es observable puedes conseguir ese mismo efecto de muchas formas la mas general es usando el patron observador

-te aviso que es una de las tantas cosas por la que swing apesta(esta es una de las menos graves) es por que no tiene una implementación de java.util.list que sea observable es decir que haga lo que tu dices

No dudes en preguntar criticar agradecer maletear o comenzar un flame si es necesario pero responde

Xedrox

Y pero cuando algo cambia del array de elementos n ome cambia el Jlist :/ . Osea es lo mismo que hice yo pero con otra clase =P

sapito169

No te entiendo te funciona o no el código
Sabes manejar clases sabes escribir código dentro del constructor?