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

    Autocompletamento JTextBox

    Salve,
    Con Java ho una Combobox che interroga un database e mi restituisce 200 valori che sono un pò troppi da visualizzare.
    Allora avevo pensato a una textbox che mi "interrogasse" la Combobox e mi facesse la scelta dei dati in base alla lettera.
    Però non riesco a scrivere un codice adatto a qeust'operazione, qualcuno mi potrebbe aiutare?
    GRAZIE

    Forse mi sono spiegato male....riprovo, così:
    Con Java come posso fare una textbox che mi prende un elenco ben definito da una query sql (che io poi per dire ho messo in una combobox) e mano mano che scrivo mi seleziona i campi che iniziano con quelle lettere o numeri?

    es.
    combobox (invisibile diciamo) con dentro
    ai
    ac
    av
    bg
    bf

    quando io nella textbox scrivo a voglio che mi compaiano solo i campi ai, ac e av

  2. #2
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    A livello teorico:
    Applichi un listener al tuo text dove scrivi la lettera, ed ad ogni lettere lanci una funzione che rielabora la lista di oggetti impostata al tuo combobox.
    ( Il tutto stile Ajax ).
    Attendo però a...se uno si diverte a scrivere e cancellare tante volte....immagina la tua povera swing...

    Il listener non mi ricordo come si chiama, ma appena ho un attimo di tempo te lo cerco e lo posto.

    Ciao!
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  3. #3
    Grazie della risposta,
    mi potresti aiutare con un pò di codice...
    visto che sono in alto mare...

    Io ho la mia combobox che si comporta così:
    codice:
    String SQL_conta_articolo= "SELECT count (distinct(articolo)) FROM scd_giacenza LEFT JOIN scd_postazioni ON (scd_giacenza.postazione=scd_postazioni.postazione_numero)"; 
    Statement selected2 = conn.createStatement();
    ResultSet result_conta_articolo = selected2.executeQuery(SQL_conta_articolo);
    result_conta_articolo.next();
            int ris_art=result_conta_articolo.getInt(1); 
            items3 = new String[ris_art]; 
            for(int w=0;w<ris_art; ){  
            //Query SQL    
            String SQL_articolo= "SELECT distinct(articolo) FROM scd_giacenza LEFT JOIN scd_postazioni ON (scd_giacenza.postazione=scd_postazioni.postazione_numero) order by articolo";        
          	//caricamento query SQL
         	ResultSet result_articolo = selected2.executeQuery(SQL_articolo);
        	while(result_articolo.next())  {
            items3[w]=""+result_articolo.getString(1)+"";
            w++;
                                             }
                                    } 
    combobox3= new JComboBox(items3);
    Come faccio poi a visualizzare solo i campi interessati all'evento della textbox?

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Allora...
    Tu alla fine di quella Query hai una lista di oggetti ( che conviene salvare in una collection, oppure in un vettore ).
    Innanzitutto ti consiglio di ordinare alfabeticamente il tuo risultato ( ORDER BY ARTICOLO ).

    Una volta che hai la lista, allo scatenarsi dell'evento crei una lista temporanea ( funzione che ritorna una lista ) con all'interno gli elementi che ti interessano.
    Puoi fare o una ricerca sequenziale degli elementi, quindi se il tuo articolo inizia con "a", piuttosto che con altro lo aggiungi alla nuova lista, altrimenti non viene preso in considerazione.
    Dato che sono in ordina alfabetico, una volta che è stata trovata almeno una corrispondenza, se quella successiva/e non combaciano puoi fermare la ricerca ( spero sia ovvio il perchè ).

    Altrimenti puoi ciclare tutti i tuoi elementi tramite un'espressione regolare che ti crei di volta in volta....

    Devo ancora iniziare a cercare il listener....porta pazienza....
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

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 © 2026 vBulletin Solutions, Inc. All rights reserved.