analytics

Mostrando entradas con la etiqueta Java JList Persona. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java JList Persona. Mostrar todas las entradas

miércoles, 5 de julio de 2017

Java cómo poblar de objetos un JList



Vamos a ver un ejemplo muy simple de cómo poblar un JLIST.
Para empezar, introduciremos un jScrollPanel en la ventana y le añadiremos dentro un componente jList. Entonces, en el constructor de la ventana, llamaremos a nuestra función de poblar el jList (loadPersonas) para añadirle los elementos.


private void loadPersonas() {
        
        ArrayList<Persona> lista = new ArrayList<Persona>();
        // .... aquí añadiriamos las personas al array
        // o bien lo recuperaríamos de un fichero o una base de datos
        
        
        jList1.setModel(new AbstractListModel() {

            @Override
            public int getSize() {
                return lista.size();
            }

            @Override
            public Object getElementAt(int index) {
                return lista.get(index);
            }
        });
        
    }




Hay que tener en cuenta un detalle. En la clase Persona, deberemos sobrescribir el método toString, para que en el jList, nos aparezca lo que deseamos (en este caso, el nombre de la persona). En caso de no hacerlo, nos aparecerá el toString que la API de Java implementa por defecto heredado.



Persona.java

....

public String toString(){
     return this.nombre;
}

....


Podemos configurar la propiedad del jList de SELECTION_MODE para que tome el valor de SINGLE, de esta manera, nos aseguramos que solo se podrá seleccionar una persona de la lista.
En el momento que queramos obtener la Persona seleccionada en el jList, podremos simplemente, castear de la siguiente manera:


Persona p = (Persona)jList1.getSelectedValue();



Es fácil tratar con jList e introducirles objetos de clases propias mediante el mecanismo de sobrescribir el método toString().