Ejemplo JList

Publicado el 01 diciembre 2013 por Cristian David Henao Hoyos @chenaooo
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....
JList listaNombres;
String nombres[] = { "Cristian", "Julian", "Milena"};
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étodo addElement(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.

JList listaNombres=new JList();
DefaultListModel modelo = new DefaultListModel();
modelo.addElement("Elemento1");
modelo.addElement("Elemento2");
modelo.addElement("Elemento3");
listaNombres.setModel(modelo);

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....

private JList listaNombres;//declaramos La Lista
private DefaultListModel modelo;//declaramos el Modelo
private JScrollPane scrollLista;

Luego instanciamos los componentes, vemos la linea ListSelectionModel.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_INTERVAL_SELECTION.........(esto lo veremos en un proximo ejemplo)....

//instanciamos la lista
listaNombres = new JList();
listaNombres.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );

//instanciamos el modelo
modelo = new DefaultListModel();

//instanciamos el Scroll que tendra la lista
scrollLista = new JScrollPane();
scrollLista.setBounds(20, 120,220, 80);
scrollLista.setViewportView(listaNombres);

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...

public void actionPerformed(ActionEvent evento) {
if (evento.getSource()==agregar)
{
agregarNombre();
mensaje.setText("Se agregó un nuevo elemento");
}
if (evento.getSource()==eliminar)
{
eliminarNombre(listaNombres.getSelectedIndex() );
}
if (evento.getSource()==borrar)
{
borrarLista();
mensaje.setText("Se borró toda la lista");
}
}

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étodo modelo.removeElementAt(indice), para eliminarlo................ para borrar toda la lista, tan solo es necesario borrar el modelo utilizando el método modelo.clear()....
private void agregarNombre() {
String nombre=campo.getText();
modelo.addElement(nombre);
listaNombres.setModel(modelo);
campo.setText("");
}
private void eliminarNombre(int indice) {
if (indice>=0) {
modelo.removeElementAt(indice);
mensaje.setText("Se eliminó un elemento en la posición "+indice);
}else{
JOptionPane.showMessageDialog(null, "Debe seleccionar un indice"
,"Error", JOptionPane.ERROR_MESSAGE);

mensaje.setText("NO se seleccionó ningún elemento");
}
}
private void borrarLista() {
modelo.clear();
}

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 ;)..... recuerden que es gratis, y nada cuesta opinar, compartir o agradecer :)
También te podría Interesar.
  • Ejemplo JFileChooser
  • Ejemplo JTree. 
  • Ejemplo JColorChooser
  • Ejemplo Jtable
  • Control de Versiones con Tortoise.
  • Clases en Java 
  • Clases Abstractas


¿Hay algo que quieras anexar o comentar sobre esta entrada?  no dudes en hacerlo.....y si te gustó...... te invito a compartir y
 Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)