Volevo chiedervi questa cosa:
ho necessità di creare una JComboBox ordinata per descrizione (label).
questa combo viene popolata leggendo un file contentete stringhe in questo modo:
chiave1|descrizion1
chiave2|descrizion2
chiave3|descrizion3
....
come si può capire, selezionando un valore all'interno della combo, ho bisogno di risalire alla "chiave".
Io ho pensato di caricare il tutto in una Hashtable, dove nel primo parametro del metodo "put" inserisco la "chiave" in modo che è univoca, nel secondo parametro inserisco un oggetto bean.
dove "objectName" è la "chiave1...2...3...", "objectLabel" è la "decscrizione1...2...3...":
public class SamObject
{
private String objectName;
private String objectLabel;
public SamObject(String objectName, String objectLabel) {
__this.objectName = objectName;
__this.objectLabel = objectLabel;
}
public String getObjectLabel()
{
__return objectLabel;
}
public String getObjectName()
{
__return objectName;
}
}
La mia Hashtable sarà quindi strutturata così:
"chiave1", new SamObject(objectName, objectLabel)
"chiave2", new SamObject(objectName, objectLabel)
"chiave3", new SamObject(objectName, objectLabel)
...
Nella combo vedo visualizzato solo le descrizioni, la popolo nel seguente modo:
...
jComboBox = new JComboBox(hashSamObject.values().toArray());
e con il metodo JComboBox.getSelectedItem() risalgo al bean, che mi serve per recuperare la chiave.
...
//recupero il nome del'oggetto in base alla selezione della combo
SamObject samObject = (SamObject) jComboBox.getSelectedItem();
return ((samObject == null) ? "" : samObject.getObjectName());
solo che non riesco ad ordinare per descrizione la Hashtable; su internet ho girato un po' e fanno esempi che da una table estraggono valori_e li mettono in una lista ordinata, ma non ordinano la table stessa!
mi sapete dare qualche dritta?
thx