Un JList nos permite almacenar objetos en una lista y mostrarlos gráficamente en una serie vertical en el cual el usuario puede desplazarse usando un scroll para buscar un elemento, sin embargo, para optimizar la experiencia del usuario, es conveniente implementar un buscador dinámico que nos permita ubicar un elemento de la lista sin tanto esfuerzo. Y es de lo que se trata este post, algo sencillo de hacer.
Creamos un JFrame y en el agregamos una caja de texto y un jList como se ve en la siguiente imagen:
A continuación ingresamos a modo código del JFrame y en el constructor de clase añadimos:
public JFrame() { initComponents(); DefaultListModel<String> modelOriginal = new DefaultListModel(); modelOriginal.addElement("Aquiles Brinco"); modelOriginal.addElement("Aquiles Baeza (Parada)"); modelOriginal.addElement("Armando Casas"); modelOriginal.addElement("Débora Melo"); modelOriginal.addElement("Elsa Pato"); modelOriginal.addElement("Elsa Pito"); modelOriginal.addElement("Elsa Podiondo"); modelOriginal.addElement("Elba Zurita"); modelOriginal.addElement("Luz Rojas"); modelOriginal.addElement("Marcia Ana"); modelOriginal.addElement("Rosamel FIerro"); modelOriginal.addElement("Susana Oria"); modelOriginal.addElement("Zacarias Flores del Campo"); modelOriginal.addElement("Aquiles Castro"); modelOriginal.addElement("Keca Galindo"); modelOriginal.addElement("Elma Montt"); modelOriginal.addElement("Sole Dolio"); modelOriginal.addElement("Débora Cabezas Parada"); modelOriginal.addElement("Lucho Pay"); modelOriginal.addElement("Armando Mocha"); modelOriginal.addElement("Paloma María Parada"); modelOriginal.addElement("Alma Marcela Goza de Alegría"); modelOriginal.addElement("Guillermo Nigote"); modelOriginal.addElement("Elvis Tek"); modelOriginal.addElement("Sevelinda Parada"); modelOriginal.addElement("José Luis Lamata Feliz"); modelOriginal.addElement("Aquiles Bailo"); modelOriginal.addElement("Alan Brito Delgado"); modelOriginal.addElement("Benito Camelo"); modelOriginal.addElement("Dolores Delano"); modelOriginal.addElement("Elsa Capunta"); modelOriginal.addElement("Elmer Curio"); modelOriginal.addElement("Elba Lazo"); modelOriginal.addElement("Elsa Pallo"); modelOriginal.addElement("Mary Conazo"); modelOriginal.addElement("Mario Neta"); modelOriginal.addElement("Soila Cerda"); modelOriginal.addElement("Zampa Teste"); modelOriginal.addElement("Elsa Polindo"); modelOriginal.addElement("Pato Carlos Bustos de la Vaca"); modelOriginal.addElement("Jorge Nitales"); modelOriginal.addElement("Elva Gina"); modelOriginal.addElement("Esteban Dido"); modelOriginal.addElement("Elba Calao"); modelOriginal.addElement("José Lamata Feliz"); modelOriginal.addElement("Rosa Malcacho"); modelOriginal.addElement("Yola Prieto"); modelOriginal.addElement("Rosa Meza Cabeza"); modelOriginal.addElement("Elvio Lao"); modelOriginal.addElement("Elver Galinda Parada"); modelOriginal.addElement("Miren Amiano"); modelOriginal.addElement("Rosamel Forrito"); this.jList1.setModel(modelOriginal); //Caja de Texto jTextField1.addKeyListener(new KeyAdapter() { @Override public void keyReleased(KeyEvent e) {//Se ejecuta cuando se libera una tecla JTextField textField = (JTextField) e.getSource(); //obtiene contenido del textfield String text = textField.getText(); if (text.trim().length() > 0) { //nuevo Model temporal DefaultListModel<String> tmp = new DefaultListModel(); for (int i = 0; i < modelOriginal.getSize(); i++) {//recorre Model original //si encuentra coincidencias agrega a model temporal if (modelOriginal.getElementAt(i).toLowerCase().contains(text.toLowerCase())) { tmp.addElement(modelOriginal.getElementAt(i)); } } //agrega nuevo modelo a JList jList1.setModel(tmp); } else {//si esta vacio muestra el Model original jList1.setModel(modelOriginal); } } }); }
Eso es todo, ejecuta y prueba
enjoy!!!
En este tutorial veremos lo fácil que es personalizar las pestañas de un JTabbedPane con unas cuantas lineas de código y[...]
Apache POI es la API de Java para el trabajo con archivos de Microsoft como son Word, Excel y Power Point. Apache POI se[...]
En un post anterior vimos como utilizar GSON para serializar un objeto java en JSON, en esta oportunidad se vera el proc[...]
Para terminar el tutorial, debemos unir tanto la VISTA como el MODELO y para eso esta el CONTROLADOR. o.O El controlador[...]
En este post dejo una forma de como utilizar imágenes en un JTable ademas de implementar MouseListener para realizar dif[...]
Tojorí es una libreria Java/Mysql para la creación de aplicaciones de base de datos utilizando el IDE de Netbeans desde[...]