JComboBox si basa su un "model" (implementazione di ComboBoxModel) e su un renderer (implementazione di ListCellRenderer).Originariamente inviato da pinuzzo87
Ciao, devo inserire in una jcombobox i valori letti da una tabella sql, però devo fare una distinzione tra il valore da recuperare successivamente dalla combo e l'elemento visualizzato.
Il model espone gli elementi nel modo più generico come Object. Il renderer di default visualizza stringhe in JLabel e il testo visualizzato è banalmente il risultato del toString() sugli oggetti-elementi.
Quindi: ti basta fare una tua classe es. MioElemento dove fai l'override di toString() per restituire il testo da visualizzare nel combo box e poi puoi mettere tutti i metodi che vuoi es. getValore() ecc... che sono metodi tuoi che "sai" tu, che ti forniscono dati interni oltre alla descrizione visuale.
Nel combo box direttamente nel model o indirettamente ci metti appunto oggetti della tua classe MioElemento. Ovviamente tu "sai" che gli Object nel combo sono realmente MioElemento quindi se li estrai tu ad esempio per prendere l'elemento selezionato fai un cast a MioElemento e pertanto puoi appunto usare i tuoi metodi speciali per ottenere dei valori.

Rispondi quotando