Foro de elhacker.net

Programación => Java => Mensaje iniciado por: marc85 en 27 Marzo 2014, 19:44 pm



Título: Filtrar datos de un jtable desde un jtextbox
Publicado por: marc85 en 27 Marzo 2014, 19:44 pm
Hola, deseo saber si alguien me puede dar un ejemplo de como filtrar datos de un jtable desde un jtextbox miré ejemplos pero solo filtra el primer caracter que se escribe y no el resto.

Agradezco la ayuda de antemano


Título: Re: Filtrar datos de un jtable desde un jtextbox
Publicado por: 1mpuls0 en 27 Marzo 2014, 20:49 pm
No entiendo.

Quieres seleccionar por ejemplo una palabra en tu jtextbox y que en tu jtable aparezcan unicamente las celdas (columnas, filas) que contengan esa palabra?.


Título: Re: Filtrar datos de un jtable desde un jtextbox
Publicado por: marc85 en 27 Marzo 2014, 21:35 pm
bueno tengo un field para numCK, concepto, fecha, etc, entonces de acuerdo al dato que escriba el usuario el buscara en la columna correspondiente y es ahí donde se logrará ir filtrando los registros.
Ejemplo:
el usuario digita un fecha, entonces los cheque que se hicieron en esa fecha se mostrarán y luego si digita un número de cheque de acuerdo a lo que muestre el jtable actualmente el buscará ese número, espero haberme hecho entender


Título: Re: Filtrar datos de un jtable desde un jtextbox
Publicado por: Mitsu en 28 Marzo 2014, 13:26 pm
Nunca he filtrado en Swing por columna, pero si por fila. Para ésto primero tienes que poner tu JTextField en modo escucha:

Código
  1. textField.getDocument().addDocumentListener(new DocumentListener() {
  2.  public void changedUpdate(DocumentEvent e) {
  3.    newFilter();
  4.  }
  5.  public void removeUpdate(DocumentEvent e) {
  6.    newFilter();
  7.  }
  8.  public void insertUpdate(DocumentEvent e) {
  9.    newFilter();
  10.  }
  11.  
  12. });
  13.  
  14. private void newFilter()  
  15. {  
  16.    // filtro de fila / filter of row
  17.    RowFilter<model,Object> rf = null;  
  18.    Try  
  19.    {  
  20.        rf = RowFilter.regexFilter("^" + jTextField.getText(), 0);    
  21.        // use regular expression
  22.    }  
  23.    catch (java.util.regex.PatternSyntaxException e)  
  24.    {  
  25.        return;  
  26.    }  
  27.    sorter.setRowFilter(rf);  // filtra la tabla / filter the table
  28. }

Luego tienes que usar el modelo JtableRowSorter:

Código
  1.    TableModel model = new TableModel();
  2.     final JTable table = new JTable(model);
  3.    final TableRowSorter<TableModel> sorter = new TableRowSorter<>(model);
  4.    table.setRowSorter(sorter);
  5.    JScrollPane pane = new JScrollPane(table);


Título: Re: Filtrar datos de un jtable desde un jtextbox
Publicado por: eljavatar en 22 Febrero 2015, 09:42 am
Hola Marc. Para lo que quieres hacer seguramente tienes varios jtextfields y cada uno debe tener su propio escuchador de eventos de tal forma que se digite algo dentro de ellos se vayan filtrando los resultados en el JTable según sus respectivas columnas.

Sin embargo, en el siguiente artículo he escrito un tutorial donde explico cómo filtrar los resultados en un jtable según la columna elegida por el usuario, aunque es muy similar a lo que necesitas:

http://www.eljavatar.com/2014/04/Como-Filtrar-los-Resultados-de-una-Consulta-en-un-JTable.html (http://www.eljavatar.com/2014/04/Como-Filtrar-los-Resultados-de-una-Consulta-en-un-JTable.html)

Espero que te sirva, y cualquier cosa me avisas.

Saludos


Título: Re: Filtrar datos de un jtable desde un jtextbox
Publicado por: Usuario Invitado en 22 Febrero 2015, 17:37 pm
Hola Marc. Para lo que quieres hacer seguramente tienes varios jtextfields y cada uno debe tener su propio escuchador de eventos de tal forma que se digite algo dentro de ellos se vayan filtrando los resultados en el JTable según sus respectivas columnas.

Sin embargo, en el siguiente artículo he escrito un tutorial donde explico cómo filtrar los resultados en un jtable según la columna elegida por el usuario, aunque es muy similar a lo que necesitas:

http://www.eljavatar.com/2014/04/Como-Filtrar-los-Resultados-de-una-Consulta-en-un-JTable.html (http://www.eljavatar.com/2014/04/Como-Filtrar-los-Resultados-de-una-Consulta-en-un-JTable.html)

Espero que te sirva, y cualquier cosa me avisas.

Saludos

Gracias por querer ayudar, pero por favor no revivamos temas antiguos que tienen un 99% de haber sido resueltos. Solo fomentamos desorden.