martes, 23 de junio de 2015

5- JAVA: MODELOS DE CUADRO DE LISTA "En Netbeans"

   

EJERCICIO GUIADO. JAVA: MODELOS DE CUADRO DE LISTA


  1. Realiza un nuevo proyecto.

  1. En la ventana principal debes añadir lo siguiente:

    1. Una etiqueta con borde llamada etiResultado.

  1. Añade un cuadro de lista al formulario (JList).





  1. Borra todo el contenido de la lista (propiedad model) y cámbiale el nombre a la lista. La lista se llamará lstNombres. Recuerda que las listas aparecen dentro de un objeto del tipo JScrollPane.











  1. Añade dos botones al formulario. Uno de ellos tendrá el texto “Curso 1” y se llamará btnCurso1 y el otro tendrá el texto “Curso 2” y se llamará btnCurso2.




  1. En el evento actionPerformed del botón “Curso 1” programa lo siguiente:

DefaultListModel modelo = new DefaultListModel();
modelo.addElement("Juan");
modelo.addElement("María");
modelo.addElement("Luis");
lstNombres.setModel(modelo);  


  1. En el evento actionPerformed del botón “Curso 2” programa lo siguiente:

DefaultListModel modelo = new DefaultListModel();
modelo.addElement("Ana");
modelo.addElement("Marta");
modelo.addElement("Jose");
lstNombres.setModel(modelo); 


  1. Explicación de los códigos anteriores:

    1. Lo que hace cada botón es rellenar el cuadro de lista con una serie de nombres. En el caso del botón “Curso 1”, la lista se rellena con los nombres Juan, María y Luis, mientras que en el caso del botón “Curso 2”, la lista se rellena con los nombres Ana, Marta y Jose.

    1. El contenido de un cuadro de lista es lo que se denomina un “modelo”. El “modelo” es un objeto que contiene el listado de elementos de la lista.

    1. Los modelos de las listas son objetos del tipo DefaultListModel.

    1. Lo que hace el programa es crear un “modelo”. Luego rellena el “modelo” con datos, y finalmente asocia el “modelo” al cuadro de lista. Veamos como se hace todo esto.

    1. Primero se crea el “modelo”, a través de la siguiente instrucción (será necesario añadir el import correspondiente, atento a la bombillita):

DefaultListModel modelo = new DefaultListModel();

    1. El “modelo” tiene un método llamado addElement que permite introducir datos dentro de él. Así pues usamos este método para añadir los datos al modelo.

modelo.addElement("Ana");
modelo.addElement("Marta");
modelo.addElement("Jose");

    1. Finalmente asociamos el “modelo” creado al cuadro de lista de la siguiente forma:

lstNombres.setModel(modelo);  

    1. Así pues, aquí tienes una forma de cambiar el contenido de un cuadro de lista desde el propio programa.


  1. Prueba a ejecutar el programa. Observa como cuando pulsas cada botón cambia el contenido de la lista:




Click y cambia el listado.
 




  1. Ahora añade el siguiente código al evento mouseClicked del cuadro de lista:

etiResultado.setText(lstNombres.getSelectedValue().toString());

Esta instrucción hace que al seleccionar un elemento del cuadro de lista éste aparezca en la etiqueta etiResultado. Recuerda que el método getSelectedValue permite recoger el elemento seleccionado (hay que convertirlo a cadena con toString)


  1. Ejecuta el programa:




Click y aparece el elemento seleccionado en la etiqueta.
 





  1. Una propuesta. Añada un botón “Vaciar” llamado btnVaciar. Este botón vaciará el contenido de la lista. Para esto lo único que tiene que hacer es crear un modelo y, sin introducir ningún valor en él, asociarlo al cuadro de lista.


CONCLUSIÓN

Un cuadro de lista es un objeto que contiene a su vez otro objeto denominado “modelo”.

El objeto “modelo” es el que realmente contiene los datos de la lista.

Cuadro de lista à Modelo à Datos

Se puede crear un “modelo” y luego introducir datos en él. Luego se puede asociar ese “modelo” a la lista. De esta manera se puede cambiar el contenido de la lista en cualquier momento.




César GI

About César GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.