Ejemplo de código Java para comprender el funcionamiento del componente JList

Ejemplo del componente JList de Java usando el IDE JDeveloper 11g

  • Modelo de datos para un JList
  • Modelo de Selección para un JList
    • Soporte de cambios en la selección de un JList

Para usar el componente  JList de Java hay que comprender el modelo de datos para la lista de objetos que el JList puede mostrar en su vista. El componente JList tiene un modelo de selección que gestiona los elementos seleccionados en la vista del JList.


El componente JList de Java es el ejemplo perfecto de la aplicación del patrón MVC (Modelo Vista Controlador).

Con el modelo de datos se puede borrar, editar y agregar objetos a la lista de objetos del componente JList. 

La siguiente clase puede gestionar todas las posibles operaciones sobre el modelo de datos perteneciente a un JList.

package client;

import javax.swing.DefaultListModel;

public class MiHerenciaDefaultListModel extends DefaultListModel {
    public MiHerenciaDefaultListModel() {
        super();
    }
    public void agregarDatos(){
        addElement("José");
        addElement("Pedro");
        addElement("aaaa");
        addElement("dddd");
    }
    public void add(int index, Object element) {
        super.add(index, element);
    }

    public void setElementAt(Object obj, int index) {
        super.setElementAt(obj, index);
    }

    public void removeElementAt(int index) {
        super.removeElementAt(index);
    }
}

Forma de usar en la vista:

private MiHerenciaDefaultListModel mHDLM = new MiHerenciaDefaultListModel();

        jList1.setModel(mHDLM);
        mHDLM.agregarDatos();



Con el modelo de selección se puede saber que elementos de la lista se han seleccionado, los elementos seleccionados pueden convertirse en un modelo de datos para operar con ellos. En la siguiente imagen se han seleccionado los elementos María y Alberto.

La siguiente clase se encarga de gestionar la detección de un cambio en la selección de los datos en un JList y de notificar a la vista que la selección ha cambiado.

package client;

import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public abstract class MiInterfazDeEscucha implements ListSelectionListener {

    public MiInterfazDeEscucha() {
        super();
    }

    @Override

    public void valueChanged(ListSelectionEvent e) {
        ListSelectionModel lsm = (ListSelectionModel)e.getSource();
        notificarVista(e);
    }

    public abstract void notificarVista(ListSelectionEvent e);
}


Forma de usar en la vista:

private DefaultListSelectionModel dlsm = new DefaultListSelectionModel();
private MiInterfazDeEscucha mIDE = null;

        mIDE=new MiInterfazDeEscucha(){
          @Override
          public void notificarVista(ListSelectionEvent e) {
              ListSelectionModel lsm = (ListSelectionModel)e.getSource()
              …
          } 
        };
        dlsm = (DefaultListSelectionModel)jList1.getSelectionModel();
        dlsm.addListSelectionListener(mIDE);
     


Para saber más sobre el componente JList visitar las siguientes páginas:

Código para pegar en un Blog Amigo:

No hay comentarios.:

Publicar un comentario

Realiza un comentario, debes autenticar una cuenta Gmail, Yahoo, OpenID, etc.