2010-05-27 5 views
6

Je veux avoir le texte dit une chose, mais avoir la valeur dire une autreSwt nom combobox/paire de clés

Texte clé

Mais il ne prend une chaîne pour ajouter des éléments.

Comment faire les programmeurs Java généralement stocker du texte/paires id dans comboboxes

Répondre

13

Peut-être que vous pouvez utiliser la méthode setData (String key, Object value) de la zone de liste déroulante à achive ce que vous voulez.

Exemple:

Combo box = new Combo(parent, SWT.DROP_DOWN); 
String s = "Item 1"; 
box.add(s); 
box.setData(s, "Some other info or object here"); 
s = "Item 2"; 
box.add(s); 
box.setData(s, "This is item two"); 

String value = (String)box.getData("Item 2"); 
// value is now "This is item two" 

Notez que la méthode getData retourne un objet. Vous devez donc le convertir dans le type que vous avez défini avec la méthode setData. Pour cette raison, vous n'êtes pas limité à définir des chaînes en tant que vos valeurs.

Vous pouvez définir n'importe quel objet comme valeur avec la méthode setData. Assurez-vous de lancer correctement lorsque vous recevez à nouveau les données avec la méthode getData.

Editer: BTW, vous pouvez utiliser les méthodes setData et getData sur n'importe quel widget SWT.