[Java] filtro di ricerca "immediato"... [Java]

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
leo80s
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 539
Iscrizione: lunedì 13 marzo 2006, 13:55
Località: bologna

[Java] filtro di ricerca "immediato"... [Java]

Messaggio da leo80s »

salve a tutti,

mi rivolgo ancora a questo forum per questo motivo:

devo riuscire a realizzare un filtro di ricerca che agisca in questo modo...
avendo un elenco di nomi e cognomi avrei bisogno di avere un JTextField che realizzi quanto segue:

se nel JTextField viene scritta una 'a' voglio che vengano mostrati solo i clienti i cui cognomi iniziano con la 'a'.. se scrivo dopo la 'a' una 'b' vorrei venissero mostrati solo i cognomi che iniziano con 'ab'.. e così via..

questo senza aver nessun JButton da premere..il "filtraggio" deve avvenire ogni volta che il contenuto del JTextField cambia...

si può fare (credo di si)?
come?

grazie
Leo
L'ignorante parla a vanvera, l'intelligente parla al momento opportuno, il saggio parla se interpellato, il fesso parla sempre.
Avatar utente
robix
Prode Principiante
Messaggi: 104
Iscrizione: mercoledì 4 aprile 2007, 8:02
Località: Toscana
Contatti:

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da robix »

Mostrare dove?

Direi che tu intenda un JComboBox da settare modificabile (è possibile scriverci dentro) e non un JTextField.

Allora basta crearsi il model personalizzato che implementi il filtro sulla base del testo presente.

I componenti swing sono costruiti sul pattern model view controller. Pertanto i dati di scelta stanno nel model che puoi configurare secondo necessità o lasciare quello predefinito.

Correggimi se sbaglio.
Ciao.
Ubuntu Lucid 10.04 - PC Pentium III Coppermine
Avatar utente
Bobby
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1978
Iscrizione: lunedì 15 gennaio 2007, 17:29

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da Bobby »

Di primo acchitto farei così (da provare e verificare):
- JTextField
- l'utente inserisce una lettera (ma funziona con n-lettere)
- l'inserimento richiama un event
- l'event esegue un metodo
- il metodo cerca in una lista di nomi tutti quelli che iniziano con la stringa inserita
- il metodo inserisce i risultati nel JTextField

Che ne dici?
The time is out of joint; - O cursed spite,
That even I was born to set it right! -
                                            Hamlet
Avatar utente
leo80s
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 539
Iscrizione: lunedì 13 marzo 2006, 13:55
Località: bologna

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da leo80s »

robix ha scritto: Mostrare dove?

Direi che tu intenda un JComboBox da settare modificabile (è possibile scriverci dentro) e non un JTextField.

Allora basta crearsi il model personalizzato che implementi il filtro sulla base del testo presente.

I componenti swing sono costruiti sul pattern model view controller. Pertanto i dati di scelta stanno nel model che puoi configurare secondo necessità o lasciare quello predefinito.

Correggimi se sbaglio.
Ciao.
aspetta non ci siamo capiti...
io ho una tabella che contiene coppie di nomi e cognomi..
voglio avere un campo (un JTextField) tale che, in ogni momento, la stringa inserita in esso sia usata per fare una query sui cognomi della tabella in modo che vengano elencati solo quelli che iniziano con la stringa presente in quel momento nel JTextField...chiaramente la query deve essere rieseguita ogni volta che il contenuto del JTextField cambia...

mi sono spiegato meglio?
comunque grazie per la disponibilità!

ciao
Leo
L'ignorante parla a vanvera, l'intelligente parla al momento opportuno, il saggio parla se interpellato, il fesso parla sempre.
Avatar utente
leo80s
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 539
Iscrizione: lunedì 13 marzo 2006, 13:55
Località: bologna

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da leo80s »

Bobby ha scritto: Di primo acchitto farei così (da provare e verificare):
- JTextField
- l'utente inserisce una lettera (ma funziona con n-lettere)
- l'inserimento richiama un event
- l'event esegue un metodo
- il metodo cerca in una lista di nomi tutti quelli che iniziano con la stringa inserita
- il metodo inserisce i risultati nel JTextField

Che ne dici?
ma in linea di massima credo potrebbe andare bene, l'unica cosa che mi chiedo è come sollevare un evento ogni volta che cambia la stringa contenuta nel JtextField...per quanto ne so io l'ActionListener solleva un evento solo quando, durante l'immissione della stringa in esso, viene premuto Enter...

che dici?
Leo
L'ignorante parla a vanvera, l'intelligente parla al momento opportuno, il saggio parla se interpellato, il fesso parla sempre.
Avatar utente
Bobby
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1978
Iscrizione: lunedì 15 gennaio 2007, 17:29

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da Bobby »

Secondo me si può aggirare il problema, ma devo fare un po' di ricerchine, ti farò sapere...
The time is out of joint; - O cursed spite,
That even I was born to set it right! -
                                            Hamlet
Avatar utente
jigen74
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 715
Iscrizione: lunedì 3 luglio 2006, 11:24

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da jigen74 »

se hai tempo, dai un'occhiata a questa libreria: GlazedList (http://publicobject.com/glazedlists/). io l'ho trovata molto comoda e, soprattutto, facile da utilizzare proprio per filtrare ed ordinare delle liste (un eventuale ComboBox nel tuo caso): http://publicobject.com/glazedlists/wiki/index.php?title=TutorialChapter3.
ciao.
Avatar utente
leo80s
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 539
Iscrizione: lunedì 13 marzo 2006, 13:55
Località: bologna

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da leo80s »

Bobby ha scritto: Secondo me si può aggirare il problema, ma devo fare un po' di ricerchine, ti farò sapere...
grazie mille,
io credo, più che altro, che qualcuno abbia gia fatto qualcosa del genere, ma non sono riuscito a trovare niente..

Leo
L'ignorante parla a vanvera, l'intelligente parla al momento opportuno, il saggio parla se interpellato, il fesso parla sempre.
Avatar utente
robix
Prode Principiante
Messaggi: 104
Iscrizione: mercoledì 4 aprile 2007, 8:02
Località: Toscana
Contatti:

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da robix »

leo80s ha scritto:
robix ha scritto: Mostrare dove?

Direi che tu intenda un JComboBox da settare modificabile (è possibile scriverci dentro) e non un JTextField.

Allora basta crearsi il model personalizzato che implementi il filtro sulla base del testo presente.

I componenti swing sono costruiti sul pattern model view controller. Pertanto i dati di scelta stanno nel model che puoi configurare secondo necessità o lasciare quello predefinito.

Correggimi se sbaglio.
Ciao.
Immaginavo la presenza di un oggetto esterno (la tabella). Ok.

Bè allora io farei uso degli eventi sulla jTextField per scatenare la query, come già suggerito.

Bye.

aspetta non ci siamo capiti...
io ho una tabella che contiene coppie di nomi e cognomi..
voglio avere un campo (un JTextField) tale che, in ogni momento, la stringa inserita in esso sia usata per fare una query sui cognomi della tabella in modo che vengano elencati solo quelli che iniziano con la stringa presente in quel momento nel JTextField...chiaramente la query deve essere rieseguita ogni volta che il contenuto del JTextField cambia...

mi sono spiegato meglio?
comunque grazie per la disponibilità!

ciao
Leo
Ubuntu Lucid 10.04 - PC Pentium III Coppermine
Avatar utente
Bobby
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1978
Iscrizione: lunedì 15 gennaio 2007, 17:29

Re: [Java] filtro di ricerca "immediato"... [Java]

Messaggio da Bobby »

Prova ad usare un evento KeyType, scatta quando digiti qualcosa su un JComponent. Putroppo su questo mac posso usare netbeans compilare ma non lanciare i file (perché? boh!) quindi non posso testare la soluzione.
The time is out of joint; - O cursed spite,
That even I was born to set it right! -
                                            Hamlet
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti