Java - JList -> eliminar elemento

 
Vista:

JList -> eliminar elemento

Publicado por Charlie (2 intervenciones) el 09/03/2013 15:11:51
Buenos días,

Mi duda es la siguiente... En el evento de un botón para eliminar items de un JList, obtengo siempre la excepción Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: -1.

He probado tanto remove(), como removeElement(), removeElementAt()... He comentado en el código las diferentes opciones que he probado, así como el código de modificar els del JList, que sí funciona.

¿Alguien me arroja una luz? Gracias por adelantado!!

Este es el código:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
//para eliminar del JList, lanza excepción
int index= jList1.getSelectedIndex();
if(index>=0){
modeloLista.remove(index);
}
/*op1: Usuario2 objUsuario2=(Usuario2)modeloLista.getElementAt(index);
modeloLista.removeElement(objUsuario2);*/

//op2: modeloLista.remove(index);

//op3: modeloLista.removeElementAt(index);

//para modificar del JList, funciona
/* String nombre;
nombre = jTextField1.getText();
Usuario2 objUsuario2 = new Usuario2(nombre);
modeloLista.set(index, objUsuario2);*/

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

JList -> eliminar elemento

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 11/03/2013 16:14:36
Hola,
Si en el index te está quedando un -1 puede ser porque no estas seleccionando nada del JList. Para eliminar un elemento en mi caso nunca he utilizado ninguno de los métodos que mencionas ya que normalmente cuando se quiere eliminar un elemento de un JList, este elemento (usuario, cliente, etc) se encuentra en base de datos o archivos por lo que en realidad tienes que eliminarlo de alguno de estos metodos de almacenamiento. Despues de hacer esto vuelves asignar la lista a este JList. Es como un actualizar. Ej
1
2
3
4
5
6
7
//Creando el JList
listModel= new DefaultListModel();
list = new JList();
list.setModel(listModel);
 
//Inicializa el Jlist con los datos
list.setListData(getClientesList());


El metodo getClientesList() retorna un array[ ] de String. Cada vez que se elimina un usuario de este array, bastaria con actualizar otra vez la lista con list.setListData(getClientesList());

Espero te sirva, Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

JList -> eliminar elemento

Publicado por bryanne (26 intervenciones) el 11/03/2013 18:31:46
bueno aqui te doy el metodo !
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
boton . addActionListener
(
   new ActionListener ()
   {
        public void actionPerformed ( ActionEvent e )
        {
               borrar () ;
         }
   }
) ;
 
//borrando el elemento
private void borrar ()
{
       final int selec = miLista . getSelectedIndex () ;
      if ( selec >= 0 )
         modeloDeMiLista . removeElementAt ( selec ) ;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

JList -> eliminar elemento

Publicado por Charlie (2 intervenciones) el 12/03/2013 20:07:22
Muchas gracias a los dos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar