Está en la página 1de 13

Como agregar datos y

mostrarlos en un
JList [Java]
Buenas tardes a todos, en esta entrada dejare un poco lo que es OpenGL y hare
un post sencillo para Java. Lo que haremos es trabajar con un JList, guardaremos
nuestros propios objetos en el y desplegaremos la informacion que contienen en
diferentes labels, es algo sencillo pero muy util. No trabajare con bases de datos
pero de igual manera se haria.
Para comenzar crearemos un nuevo proyecto en NetBeans sin mainclass

Y despues de esto crearemos un packete con nombre cual quiera y crearemos un


JFrame, y lo diseñaremos de la siguiente manera
Para comenzar con todo esto, despues de que ya tengamos nuestro diseño
anterior, lo que haremos es crear una clase que se llame Usuario, esta clase
tendra las propiedades que despliega el form anterior. Primero haremos esto:
Creamos la clase y declaramos esas variables ( por cierto falto el ID, lo agregan
como int), despues damos clic derecho ( este es un buen tip jaja), y en insertar
codigo damos clic y aparecera esta lista desplegable, y tenemos varias opciones
para que netbeans nos agregue codigo, primero le vamos a poner que nos
agregue un constructor y seleccionamos todas las propiedades, despues damos
clic en getter and setter y seleccionamos todas las propiedades

Como lo hicimos en el post de como llena un JComboBox, tenemos que


sobreescribir un metodo llamado toString, para que nos muestre lo que nosotros
desiemos al momento de agregar un objeto al JList
La clase quedara de la siguiente manera:

1 public class Usuario {


2
    private String nombre, apellido, direccion, telefono, email;
3     private int id;
4
5     public Usuario(String nombre, String apellido, String direccion, String telefon
6         this.nombre = nombre;
7         this.apellido = apellido;
8         this.direccion = direccion;
        this.telefono = telefono;
9         this.email = email;
10     }
11
12     public int getId() {
13         return id;
14     }
15
    public void setId(int id) {
16         this.id = id;
17     }
18
19     public String getApellido() {
20         return apellido;
21     }
22
    public void setApellido(String apellido) {
23         this.apellido = apellido;
24     }
25
26     public String getDireccion() {
27         return direccion;
    }
28
29     public void setDireccion(String direccion) {
30         this.direccion = direccion;
31     }
32
33     public String getEmail() {
34         return email;
    }
35
36     public void setEmail(String email) {
37         this.email = email;
38     }
39
40     public String getNombre() {
41         return nombre;
    }
42
43     public void setNombre(String nombre) {
44         this.nombre = nombre;
45     }
46
47     public String getTelefono() {
        return telefono;
48     }
49
50     public void setTelefono(String telefono) {
51         this.telefono = telefono;
52     }
53     @Override
    public String toString() {
54
55
56
57
58
59         return nombre+" "+apellido;
60     }
61 }
62
63
64
65

Ahora tendremos que crear un modelo para nuestra lista, para eso tenemos uno
por default llamado DefaultListModel, declaramos y creamos un objeto de tipo
DefaultListModel en la clase de nuestro frame:

1 /** Creates new form MainWindow */


2 DefaultListModel modeloLista = new DefaultListModel();
3 public MainWindow() {
4     initComponents();
    jList1.setModel(modeloLista);
5 }
6

Creamos el modelo y se lo asignamos a nuestra lista. Ahora viene lo mas sencillo


del mundo!, en el boton que agregamos en el form damos doble clic y en el evento
simplemente agarramos los datos y creamos un objeto de la clase usuario dandole
los parametros en el constructor (importante y para buena practica de
programacion, no dejemos los nombres por default, a cada textfield le cambiamos
el nombre como ud deseen para poder identificarlo, por ejemplo
txfNombre,txfApellido,texfDireccion etc), despues de crear nuestro objeto, lo
agregamos a nuestra lista:

1
2 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
3     // TODO add your handling code here:
    String nombre, apellido, direccion, telefono, email;
4     int id;
5     nombre = txfNom.getText();
6     apellido = txfApe.getText();
7     direccion = txfDir.getText();
8     telefono = txfTel.getText();
    email = txfMail.getText();
9     id = Integer.parseInt(txfId.getText());
10
11     Usuario objUsuario = new Usuario(id, nombre, apellido, direccion, telefono, ema
12    modeloLista.addElement(objUsuario);
13 }
14
Y asi se iran almacenando los objetos usuario a nuestra lista,

Ahora solo falta desplegar la informacion al seleccionar un elemento en la lista,


para eso haremos uso del evento del jList llamado valueChanged y escribiremos lo
siguiente

1
2 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
    // TODO add your handling code here:
3  int index= jList1.getSelectedIndex();
4  Usuario objUsuario=(Usuario)modeloLista.getElementAt(index);
5
6  lblId.setText("ID: "+objUsuario.getId());
7  lblNom.setText("Nombre: "+objUsuario.getNombre());
8  lblApe.setText("Apellido: "+objUsuario.getApellido());
 lblDir.setText("Direccion: "+objUsuario.getDireccion());
9  lblTel.setText("Telefono: "+objUsuario.getTelefono());
10  lblMail.setText("Email: "+objUsuario.getEmail());
11
12 }
13

Y al seleccionar cada elemento que este en la lista nos desplegara la informacion


en los labels que habiamos agregado
Esto para mi ha sido util al momento de desarrollar diferentes aplicaciones en el
tecnologico!, espero les sea de ayuda!

Xxxxxxx

Crear un Modelo y Asignarlo a una JList


Veamos una forma sencilla de agregar elementos a una JList (recordamos que es necesario
importar la librería javax.swing.*):
1
2JList lista = new JList();
3DefaultListModel modelo = new DefaultListModel();
4for(int i = 1; i<=10; i++){
5 modelo.addElement(i);
6 }
lista.setModel(modelo);

Este ejemplo mostrará una JList con números del 1 al 10. En este caso creamos primero una
lista y luego un modelo. Añadimos los elementos al modelo y finalmente asignamos el modelo
a la JList.
Otro Método
Hay más formas para crear una JList en java. En este caso tenemos los elementos dentro de
un array, llamamos el constructor JList y se lo pasamos como parámetro.
1
2String [] elementos = {"a","b","c","d"};
javax.swing.JList list = new javax.swing.JList(elementos);

Kkkkkkkkkkkkkkkkkk

Ejemplo JList

Ya en la recta Final de los componentes Java Swing,


continuamos con un nuevo ejemplo, en esta ocasión es el turno
del JList....

Este está en el grupo de componentes Complejos aunque realmente


su uso es muy simple así como la forma de entenderlo....

Que es?

Este componente nos permite presentar una lista de selección donde


podemos escoger uno o varios elementos...... este tipo de selección
ya la habíamos visto mediante el uso del componente
Atómico JComboBox, pero en ese para ver todos los elementos
teníamos que desplegar el combo y solo podemos seleccionar de a
una opción....

Agregar Elementos...
Voy a mostrar 2 formas de agregar elementos a un JList, la primera
mediante un arreglo y la segunda usando la
clase DefaultListModel...

Forma 1.

Para agregar elementos usando un arreglo es muy simple, tan


solo tenemos que declarar nuestro arreglo y agregarselo al
constructor del objeto JList con el que estemos trabajando..... esta
forma es muy usada cuando traemos datos directamente de una BD
y tenemos que mostrarla en pantalla....

1 JList listaNombres;

2 String nombres[] = { "Cristian", "Julian", "Milena"};

3 listaNombres = new JList( nombres );

Forma 2.

La segunda forma también es muy simple, tenemos que


declarar un objeto de tipo DefaultListModel y por medio del
métodoaddElement(elemento), vamos agregando elementos a
nuestro modelo, posteriormente dicho modelo se agrega al JList con
el que trabajemos...... esta forma es muy usada cuando tenemos que
agregar y mostrar directamente los datos ingresados en pantalla.

1 JList listaNombres=new JList();


2 DefaultListModel modelo = new DefaultListModel();

3 modelo.addElement("Elemento1");

4 modelo.addElement("Elemento2");

5 modelo.addElement("Elemento3");

listaNombres.setModel(modelo);
6

El Ejemplo.

En el ejemplo usaremos la Forma 2, tan solo presentaremos una


ventana con 3 opciones principales, agregar, eliminar y borrar lista,
de esta manera evidenciaremos el funcionamiento del JList....

Veamos el código principal asociado a nuestro JList, Inicialmente


declaramos nuestra lista, nuestro modelo y un Scroll que contendrá
la lista en caso de que se agreguen muchos elementos....
1 private JList listaNombres;//declaramos La Lista

2 private DefaultListModel modelo;//declaramos el Modelo

3 private JScrollPane scrollLista;

Luego instanciamos los componentes, vemos la


lineaListSelectionModel.SINGLE_SELECTION, esto nos indica que
nuestra lista tan solo permitirá la selección de un único elemento, si
quisieramos seleccionar mas de un elemento
utilizábamos                    ListSelectionModel.MULTIPLE_INTERV
AL_SELECTION.........(esto lo veremos en un proximo ejemplo)....
1
//instanciamos la lista
2 listaNombres = new JList();

3 listaNombres.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );

5 //instanciamos el modelo

6 modelo = new DefaultListModel();

8 //instanciamos el Scroll que tendra la lista

scrollLista = new JScrollPane();


9
scrollLista.setBounds(20, 120,220, 80);
10
scrollLista.setViewportView(listaNombres);
11

Posteriormente en los eventos de los botones definimos el llamado a


los métodos que se encargarán de realizar la incersión de datos al
modelo, la eliminación y el borrado, así como la actualización de un
mensaje de estado cada vez que se ejecute una acción...
1 public void actionPerformed(ActionEvent evento) {

2  if (evento.getSource()==agregar)

 {
3
4
  agregarNombre();
5
  mensaje.setText("Se agregó un nuevo elemento");
6
 }
7
 if (evento.getSource()==eliminar)
8  {

9   eliminarNombre(listaNombres.getSelectedIndex() );

10  }

11  if (evento.getSource()==borrar)

 {
12
  borrarLista();
13
  mensaje.setText("Se borró toda la lista");
14
 }
15
}
16

Por ultimo se tienen los métodos llamados en el paso anterior..... el


llenado se hace mediante la forma 2..... para eliminar un elemento
de la lista, como se muestra en el paso anterior, debemos enviar el
elemento seleccionado mediante el método getSelectedIndex() que
retorna la posición del elemento, contando el primero con un índice
0, este valor es enviado y se usa el
métodomodelo.removeElementAt(indice), para
eliminarlo................ para borrar toda la lista, tan solo es necesario
borrar el modelo utilizando el métodomodelo.clear()....
1 private void agregarNombre() {

2  String nombre=campo.getText();

 modelo.addElement(nombre);
3
 listaNombres.setModel(modelo);
4
 campo.setText("");
5
}
6
7

8
private void eliminarNombre(int indice) {
9
 if (indice>=0) {
10
  modelo.removeElementAt(indice);
11
  mensaje.setText("Se eliminó un elemento en la posición "+indice);
12   }else{

13      JOptionPane.showMessageDialog(null, "Debe seleccionar un indice"

14      ,"Error", JOptionPane.ERROR_MESSAGE);

15

16      mensaje.setText("NO se seleccionó ningún elemento");

     }
17
  }
18

19
private void borrarLista() {
20
  modelo.clear();
21
}
22

Y Listo!!! De esa manera vemos rápidamente un ejemplo simple


utilizando el componente JList, usamos sus métodos básicos para
tener una aplicacion en funcionamiento y el proceso no presenta
mayores complicaciones....

Descarga!!!

Les dejo el enlace de descarga por si lo quieren revisar ;).....si


usas NetBeanste interesará esta entrada con un vídeo paso a
paso de como abrirlo en el....recuerden que es gratis, y nada
cuesta opinar, compartir o agradecer :)

También podría gustarte