Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Filtro JTable utilizzando una JtextField

    Ciao a tutti,
    ho una tabella con la quale visualizzo un elenco di dati estratti da un database. Vorrei, attraverso l'immissione di un valore in una JTextField, ricercare determinate righe dell'elenco . Potete aiutarmi?

    Spero di essere stato chiaro.
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Filtro JTable utilizzando una JtextField

    Originariamente inviato da saverix80
    ho una tabella con la quale visualizzo un elenco di dati estratti da un database. Vorrei, attraverso l'immissione di un valore in una JTextField, ricercare determinate righe dell'elenco . Potete aiutarmi?
    Innanzitutto immagino, da quanto dici, che il filtro vuoi farlo "a valle" sui dati già presenti nella tabella e non "a monte" come condizione nella select sul database.

    Come seconda cosa dovresti precisare se il table model è uno predefinito oppure è una tua implementazione. In quest'ultimo caso se la implementazione l'hai fatta tu e hai gestito una tua struttura dati nel model, allora basterebbe fare in modo che il model offra all'esterno un metodo per il filtro e che internamente vada a fare la ricerca.
    Tieni anche presente che da Java 6 esistono TableRowSorter e RowFilter che consentono filtri più sofisticati e combinabili insieme.

    Ma c'è ancora un'altra questione. Tu cerchi qualcosa e ci sono righe che corrispondono alla ricerca, cosa vuoi fare? Mostrare nella tabella solo più le righe che corrispondono? Oppure lasciare i dati come sono ma evidenziare (o es. con un colore di sfondo custom oppure proprio con la "selezione" multipla di JTable) le righe? O altro?

    E infine dovresti anche precisare quale è il criterio di ricerca. Su una colonna specifica? Su tutte le colonne? Ricerca parziale? Ricerca con una espressione regolare?

    Come vedi le cose da valutare sono svariate.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ti ringrazio per la risposta e mi scuso per l'incopletezza del mio post.

    1) La ricerca deve essere fatta a"valle" sui dati già presenti sulla tabella;
    2) Ho utilizzato un DefaultTableModel.
    3) Vorrei visulaizzare solo le righe che corrispondono alla ricerca.
    4) La ricerca deve fare riferimento solo ad una colonna.


    Conosco l'esistenza sia RowSorter e di RowFilter, ho provato pure ad usarli ma non appena digito la parola ricercata sulla JtextField la tabella si svuota. Purtroppo non posso mostrare il codice utilizzato perchè non ho adesso il mio pc.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da saverix80
    Conosco l'esistenza sia RowSorter e di RowFilter, ho provato pure ad usarli ma non appena digito la parola ricercata sulla JtextField la tabella si svuota.
    Beh ma dipende dal filtro usato. Se hai usato RowFilter.regexFilter che fornisce un filtro già implementato con la nozione di "espressione regolare" per certe colonne oppure se hai implementato di tuo pugno un RowFilter e in tal caso bisognerebbe vedere che logica di filtro hai fatto nel include.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ciao a tutti

    Ho visto il post ed ho preferito aggiungermi in coda piuttosto che aprirne un altro

    La mia domanda è:

    E se la ricerca tramite filtro fosse fatta su una tabella vuota che man mano che scrivo me la popola andando a fare una select su database (quindi select a monte sul db)... anche perchè nel mio db sono presenti piu di 60000 record quindi non sarebbe performante caricarli tutti per poi effettuare una ricerca a valle.
    Come bisognerebbe impostare il codice ???



    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.