Home / Programmazione / Java / Impostare filtri in JTable
Mattepuffo

Impostare filtri in JTable

Impostare filtri in JTable

Articolo riscritto

In questo articolo vediamo come impostare un filtro in una JTable, scrivendo dentro una JTextfield.

In pratica vogliamo ottenere quell'effetto per cui man mano che scriviamo, rimangono solo i dati che "assomigliano" a ciò che scriviamo.

Quello che ci serve è un TableRowSorter, impostato dopo l'inizializzazzione della nostra JTable.

Poi aggiungete una JTextField alla finestra, ed impostate un evento che intercetta quando scrivete.

In pratica una cosa del genere:

        myTextField.addKeyListener(new KeyAdapter() {
            @Override
            public void keyReleased(KeyEvent evt) {
                String search = myTextField.getText();
                if (!search.isEmpty()) {
                    sorter.setRowFilter(RowFilter.regexFilter("(?i)" + search));
                } else {
                    sorter.setRowFilter(null);
                }
            }
        });

In questo modo abbiamo impostato una ricerca che non tiene conto delle maiuscole o minuscole.

Quindi queste ricerche produrranno gli stessi risultato:

  • ciao
  • CIAO
  • Ciao

 Se invece il campo di ricerca è vuoto, resettiamo il filtro, in modo da visualizzare tutte le righe.

Enjoy!