java - obtener - Actualizar JList en un JFrame
leer jlist (3)
Tengo un JList que muestra información de un vector. El usuario puede agregar y eliminar información de este vector. ¿Es posible actualizar el JList dentro de mi JFrame cuando se agregan / eliminan elementos del Vector? Actualmente estoy haciendo ..
list = new JList(names);
jframe.add(new JScrollPane(list), BorderLayout.CENTER);
pero esto no actualiza el JList a nada nuevo. He revisado y mis contenidos vectoriales, etc. cambian, pero la lista no se actualiza. ¿Por qué? ¿Cómo puedo arreglarlo?
Creo que encontré la solución para el gráfico ''actualización'' de Jlist. Intente llamar a este método después de cada elemento de agregar o quitar del modelo que se encuentra en la lista J.
Jlist_name.ensureIndexIsVisible (model_name.getSize ());
Llame a updateUI en la lista J después de modificar su Vector.
No deberías estar actualizando el Vector. Los cambios deben hacerse directamente a ListModel, luego la tabla se volverá a pintar automáticamente.
Si decide recrear el ListModel debido a los cambios en el Vector, entonces actualiza la lista haciendo lo siguiente:
list.setModel( theNewModel );
Editar: olvide el vector y cargue los datos directamente en DefaultListModel:
DefaultListModel model = new DefaultListModel();
model.addElement( "one" );
model.addElement( "two" );
JList list = new JList( model );
Ahora, cuando necesite cambiar los datos, actualice el modelo directamente con los métodos addElement (), removeElement () o set (). La lista será automáticamente repintada.