|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2008
Messaggi: 60
|
[JAVA] combobox con 2 valori
ciao a tutti.
rieccomi con un nuovo problema. Volevo chiedervi se è possibile caricare nella JComboBox 2 valori di cui solo 1 visibile in lista. Mi spiego meglio: ho delle coppie di valori (ID e Descrizione). voglio visualizzare nella combo la Descrizione, ma utilizzare l'ID una volta selezionato il valore della combo. in VB6 basta scrivere Codice:
Combo1.AddItem RecordSet("Descrizione")
Combo1.ItemData(Combo1.NewIndex) = RecordSet("ID")
e in lettura
.... = Combo1.List(Combo1.ListIndex) 'ho la descrizione
...= Combo1.ItemData(Combo1.ListIndex) 'ho la chiave unica
In alternativa come posso fare? pensavo di caricare un array a 2 dimesioni, tipo: Codice:
String[][] mod = {{"1","tipo1"},{"2","tipo2"},{"2","tipo3"}};
DefaultComboBoxModel cmbModel=new DefaultComboBoxModel();
cmbModel.addElement(mod[0][1]);
cmbModel.addElement(mod[1][1]);
cmbModel.addElement(mod[2][1]); //cosi carico la stringa "tipo3" ma mi rimane fuori l'ID
// cmbModel.addElement(mod[0]); //cosi carico il reference visualizzando String@123456
cmbTest.setModel(cmbModel);
grazie, tagan |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Crei una classe che contenga i tuoi valori (anche unnamed).
La toString() di quella classe riporta il valore che vuoi visualizzare
__________________
In God we trust; all others bring data |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Apr 2008
Messaggi: 60
|
Quote:
intendi una cosa del genere? Codice:
class MioDato{
public int ID;
public String Descrizione;
public String toString(){
return ID+"-"+Descrizione;
}
}
Codice:
MioDato md = new MioDato(); md.ID=1; md.Descrizione="Testo1"; cb.addItem(md); md = new MioDato(); md.ID=2; md.Descrizione="Testo2"; cb.addItem(md); md = new MioDato(); md.ID=3; md.Descrizione="Testo3"; cb.addItem(md); 1-testo1 2-testo2 3-testo3. invece io voglio solo visualizzare il testo, ma alla selezione, mi deve restituire l'ID associato al testo. |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Codice:
@Override
public String toString()
{
return descrizione;
}
Alla selezione, ti fai dare l'indice con getSelectedIndex(); visto che poi hai il modello (lo puoi ottenere con Codice:
DefaultComboBoxModel model = (DefaultComboBoxModel)cmd.getModel();
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Apr 2008
Messaggi: 60
|
Quote:
il codice per prelevare il valore dalla combo è questo: Codice:
DefaultComboBoxModel model = (DefaultComboBoxModel)cb.getModel(); MioDato md = (MioDato)model.getSelectedItem(); |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Puoi prelevare il valore direttamente con getSelectedItem()
__________________
In God we trust; all others bring data |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:03.




















