Hoy hoy e decidido crear este articulo donde le voy a enseñar a hacer búsquedas dinámicas en un JTable sin base de datos. La búsqueda se va a realizar por la columna que nosotros le indiquemos, Pueden ser todas o una sola.
Para lograr hacer esto nosotros usaremos un JComboBox para elegir en cual de las columnas se desea hacer la búsqueda. Como se muestra en la siguiente imagen:
Nosotros usaremos un JTextField para ingresar el dato a buscar en la columna indicada gracias al JComboBox. A este JTextField le crearemos un evento KeyTyped para que realice la búsqueda en automático a medida que vamos escribiendo, sin la necesidad de un botón buscar. Como en el siguiente ejemplo:
Pasos para realizar búsquedas en un JTable en Java:
1-Creamos una interfaz como la siguiente con ayuda de netbeans o a puro código como mas prefieran en este caso yo lo haré en netbeans:
2-Les cambiare el nombre de variable:
- JComboBox = comboFiltro
- JTextField = txtFiltro
- JTable = tablaListado
3-Nuestro JComboBox podrá elegir entre "Codigo, Nombre, DNI o numero de identificación", Para hacer eso nos vamos a propiedades, Model y borramos todo y los cambiamos por las alternativas que queramos que se nos desplegué.
.
Y por fin a programar:
- Antes de escribir el código en el evento de nuestro "txtFiltro" Creamos un método llamado filtro.
- Y como sale error es, es por que no vemos declarado el TableRowSorter así que lo hacemos al principio.
- Y para terminar volvemos a nuestro evento txtFiltro creado anteriormente y escribimos el codigo.
Si quieres descargar el proyecto completo aquí esta gratis:
https://github.com/cesar10garcia2/FiltrarBuscarDatosEnUnaJTableEnJava
29 comentarios
Write comentariosHermano muy sencillo excelente, mis felicitaciones y agradecimientos.
ReplyDe nada un gusto poder ayudar
ReplyHola.. muy bueno lo que escribiste me sirvio bastante.. Pero no se si me pdrias ayudar por favor con modificar los datos de una tabla.. y que a la vez modifique en el archivo txt en donde tengo almacenado los atos
ReplyAmigo porque utilizas el repaint();
ReplyMuchisimas Gracias excelente ejemplo
Replya lo que entendí del código lo usa para re dibujar la tabla y filtre según los datos
ReplyBuenisimo, muchas gracias!
ReplyEspectacular! , te quería preguntar, como se hace el recuadro negro que usas arriba? :P
ReplyMuchas Gracias!
ReplyAmigo me podrias ayudar con un codigo, intente lo que posteaste pero no me funciona!?
ReplyAmigo me podrias ayudar con un codigo, intente lo que posteaste pero no me funciona!?
ReplyHola. Esta muy bien, lo probe y ha funcionado. Solo que ahora al seleccionar la fila con esto:
Replyint fila = table.getSelectedRow();
Siempre me selecciona la primera, osea la fila 0.
Como puedo corregir esto?
Gracias
hola no se si te moleste ke lo comparta a youtube con la base de datos en mysql, buen aporte amigo..
ReplyNo hay problema
ReplyNo hay problema
Replyde donde sale el trsfiltro ... ??
ReplyPor que me da error cuando Busco con:
Reply+ o *
Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+
Cuando busco con signo MAS o ASTIRISCO me da error
ReplyMuy bueno gracias
Replyno me sale :(
ReplyMuchas gracias, me ayudaste bastante, el proyecto va perfecto y pude implementar algunas funciones al mio, excelente aporte, gracias por compartir tus conocimientos.
ReplyPerfecto funciono tal como lo esperaba, muchas grtacias
ReplyMuchas Gracias, me super ayudo
Replymuchas gracias amigo por tu ayuda la verdad solo tome la parte de la búsqueda que haces en un JTable Java, gracias y saludos desde Lima Perú
ReplyHola amigo, Excelente trabajo, muy bien explicado todo, me ayudaste bastante. Solo tengo una duda y quisiera saber si me puedas ayudar.
ReplyYo tengo un producto con un nombre en la tabla (´Torrontes´ por ejemplo) y cuando lo quiero buscar, si o si debo escribir el nombre tal cual para que aparezca. Yo quisiera buscar el producto y que lo busque igual aunque no haya puesto la primer letra en mayúsculas, se podría hacer eso? no se, si exprese bien mi idea.
El código falla cuando después de realizar un filtrado, eliminas un dato de la tabla. Debes advertir esa parte.
ReplyExcelente...
ReplyLots of game slots only here play casino games convenient Do not wait! Win right here and now.
ReplyMuchas gracias amigo, me quede perplejo al saber que el método que yo utilizaba era muy complejo y largo, y el tuyo no xD
Reply