Saltar al contenido

¿Cómo borrar una JList en Java?

Ernesto, parte de este gran staff, nos hizo el favor de crear este enunciado porque conoce perfectamente el tema.

Solución:

No debe reiniciar todo el widget JList solo para eliminar algunos elementos. En su lugar, debe manipular el modelo de listas, ya que los cambios se sincronizan “automáticamente” con la interfaz de usuario. Suponiendo que de hecho está utilizando el DefaultListModelesto es suficiente para implementar su funcionalidad ‘Borrar todo’:

private void jButtonClearActionPerfomed(java.awt.event.ActionEvent evt) 
    if(evt.getSource()==jButtonClear) 
        DefaultListModel listModel = (DefaultListModel) jList1.getModel();
        listModel.removeAllElements();
    

Hay varios problemas, el primero es que su ejemplo está lleno de problemas de compilación, así que espero que ese no sea su código real.

JList no tiene static método llamado setListData. Creo que quieres decir jList1 en cambio.

Cada vez que hace clic en el botón Limpiar, está creando un nuevo modelo y componente…

private void jButtonClearActionPerfomed(java.awt.event.ActionEvent evt)

    // ??
    DefaultListModel listmodel=new DefaultListModel();
    jList1 = new JList(listmodel);
    // ??
    if(evt.getSource()==jButtonClear) jList1.setListData(new String[0]);
    else listmodel.removeAllElements();

Has desreferenciado con éxito lo que sea jList1 estaba apuntando, por lo que cada vez que intenta interactuar con él, ya no está interactuando con el componente en la pantalla.

El otro problema es que estás suministrando un vacío array hacia setListData método, que básicamente es como decir, “por favor no agregue nada a mi lista”

Prueba algo como esto;

private void jButtonClearActionPerfomed(java.awt.event.ActionEvent evt)

    DefaultListModel listmodel = (DefaultListModel)jList1.getModel();
    if(evt.getSource()==jButtonClear) 
        listmodel.removeAllElements();
     else 
        listModel.addElement(new String[]"Hello");
    

prueba esto:

DefaultListModel model = new DefaultListModel();
model.clear();
jList1.setModel(model);

Si te sientes estimulado, tienes el poder dejar un tutorial acerca de qué te ha impresionado de esta noticia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *