Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: jcomboBox e jTextField

  1. #1

    jcomboBox e jTextField aiuto!!!!!!!!!

    se in una jcomboBox invece volessi passare un vector<oggetti> o i loro nomi tipo oggetti.getNome, come faccio???


    e ti volevo chiedere anche se ho un jTextFieldQuantita se ci inserisco un numero come lo recupero se uso jTextFieldQuantita.getText restituisce una stringa mentre per avere un numero come si fà??? e poi se volessi bloccarla una jTextFieldQuantita cioè vorrei che se ci fosse scritto qualcosa nessuno premendoci ci possa cambiare il valore, grazie mille dell'aiuto!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Ecco, va bene l'apertura di una nuova discussione, ma rimane in piedi il regolamento... parole come "aiuto!!!" sono inutili (è ovvio a tutti che chiedi aiuto) e vanno evitate (è scritto nel regolamento).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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

    Re: jcomboBox e jTextField aiuto!!!!!!!!!

    Originariamente inviato da Jason Bourne
    se in una jcomboBox invece volessi passare un vector<oggetti> o i loro nomi tipo oggetti.getNome, come faccio???
    Il renderer di default del JComboBox fa la cosa che ho già spiegato nell'altra discussione: riceve un Object per una cella, invoca toString() e la stringa risultante è ciò che vedi nella cella.

    Vuoi che ciò che si veda sia il risultato di un es. getNome() sugli oggetti? Si può fare: implementando un apposito "renderer" oppure mettendo nel model non direttamente gli oggetti che hanno il getNome() ma un altro tipo che lo incapsula e il cui toString() usa getNome() (in pratica una specie di "adattatore") oppure ancora implementare un apposito ComboBoxModel (ma questo richiede qualche accorgimento per via della questione della "selezione" da mantenere).

    Originariamente inviato da Jason Bourne
    e ti volevo chiedere anche se ho un jTextFieldQuantita se ci inserisco un numero come lo recupero se uso jTextFieldQuantita.getText restituisce una stringa mentre per avere un numero come si fà???
    Lo devi "parsare" e dipende dal formato, se deve sempre essere fisso (es. inglese) oppure "localizzato".
    Vedi il parseInt() di Integer e i parseXXX degli altri tipi wrapper.

    Originariamente inviato da Jason Bourne
    se volessi bloccarla una jTextFieldQuantita cioè vorrei che se ci fosse scritto qualcosa nessuno premendoci ci possa cambiare il valore
    Lo puoi rendere non editabile con setEditable(false) (attenzione, è diverso dal "(dis)abilitato" che è setEnabled() !)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    mi scuso con LeleFT e ringrazio andbin, cmq tu mi dici che se passo direttamente un oggetto tramite il tostring me lo mette li nella combo, ma il to string cosa recupera dall'oggetto??? cioè scusa l'ingnoranza non riesco a capire come può visualizzarsi un oggetto, cosa restituisce una stringa, un id???

    ma sinceramente poi non riesco a capire quando uno seleziona dalla combo un oggetto io per sapere quello selezionato dovrò tipo mettere jcomboBox.getSelezionato()?? sempre se esiste qualcosa del genere, grazie mille

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Jason Bourne
    cmq tu mi dici che se passo direttamente un oggetto tramite il tostring me lo mette li nella combo, ma il to string cosa recupera dall'oggetto??? cioè scusa l'ingnoranza non riesco a capire come può visualizzarsi un oggetto, cosa restituisce una stringa, un id???
    Facciamo l'esempio con Integer. Se fai:

    tuoCombo.addItem(new Integer(123));

    nel combo e poi direttamente nel model c'è questo oggetto Integer. Il model lo "espone" genericamente come Object e il renderer pure riceve un Object. Il renderer di default è agnostico rispetto al vero tipo dell'oggetto (cioè non gli interessa quale sia) e la cosa generica che può fare è invocare toString() su questo oggetto.

    Il toString() di Integer restituisce la stringa con il valore del numero incapsulato nel Integer. Tutto qui, quindi nella cella vedi il valore del Integer.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    ok ma metti che io abbia un oggetto con attributi nome, id, e altro, facendo come hai detto tu mi visualizzerebbe il nome??

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Jason Bourne
    ok ma metti che io abbia un oggetto con attributi nome, id, e altro, facendo come hai detto tu mi visualizzerebbe il nome??
    No, dipende da cosa fa il toString(), se è una tua classe puoi/dovresti implementare toString() affinché ritorni una "descrizione" dell'oggetto, che potrebbe essere un campo nome o un id-spazio-nome o altra composizione che vuoi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Grazie ho capito quindi basta che poi nel tostring gli faccia fare getnome
    codice:
    public String toString() {
    		return String.valueOf(get_nome());
    	}
    e poi quando ho selezionato un elemento nella combo come faccio aprendere in input che ha selezionato proprio quello?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Jason Bourne
    Grazie ho capito quindi basta che poi nel tostring gli faccia fare getnome
    codice:
    public String toString() {
    		return String.valueOf(get_nome());
    	}
    Se il quel metodo ritorna già un String .... il valueOf è del tutto inutile!

    Originariamente inviato da Jason Bourne
    e poi quando ho selezionato un elemento nella combo come faccio aprendere in input che ha selezionato proprio quello?
    Nel model ci sono oggetti di questa tua classe, quindi a seguito di un evento di cambio selezione (o in qualunque altro momento) puoi usare getSelectedItem() che ti restituisce il Object selezionato. Nota: il ritorno di questo è proprio appunto Object. Perché è tutto "agnostico" rispetto al tipo dell'oggetto.

    Sei tu che "sai" che gli oggetti sono di questa tua classe, quindi potrai fare:

    TuaClasse oggSelezionato = (TuaClasse) combo.getSelectedItem();
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Grazie mille quindi da quello che ho capito passo un oggetto e quindi non posso passargli vector di oggetti ma bensi uno alla volta, grazie mille!

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.