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
31 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
ReplyI have read your blog its very attractive and impressive. I like it your blog.
ReplyJava Training in Chennai Core Java Training in Chennai Core Java Training in Chennai
Java Online Training Java Online Training Core Java 8 Training in Chennai Core java 8 online training JavaEE Training in Chennai Java EE Training in Chennai
buenas tardes alguien sabe como hacer para que no puedan meter datos repetidos en una jtable ?? saludes 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...
ReplySome us know all relating to the compelling medium you present powerful steps on this blog and therefore strongly encourage contribution from other ones on this subject while our own child is truly discovering a great deal. Have fun with the remaining portion of the year.
ReplyData Science Training in Indira nagar
Data Science Training in btm layout
Data Science Training in Kalyan nagar
Data Science training in Indira nagar
Data science training in bangalore
Lots of game slots only here play casino games convenient Do not wait! Win right here and now.
Reply