Nicht Sichtbaren Zugriffswert In Jcombobox

d_ausstroit

Mitglied
Hai, folgendes Problem beschäftigt mich zur Zeit. Ich möchte gern die Werte aus einer DB-Tabelle in eine JComboBox übernehmen. Das wäre nicht so schwierig. Allerdings möchte ich dabei einen Wert für jeden Eintrag aus der DB mit in die Box übernehmen, über den ich dann zugreifen kann. Dieser Wert sollte beim Aufklappen der Box aber nicht angezeigt werden. Wäre supi, wenn mir jemand helfen würde.

Gruß Dirk
 
Hai. Ich habe mir schon eine Klasse erzeugt. Das lesen aus der Box funktioniert auch. Allerdings tue ich mit dem reinschreiben (mit setSelectedItem) in die Box schwer. Ich habe aus der DB nur den Schlüsselwert. Und zum positionieren innerhalb der Box brauche ich ja den Wert der in der Box steht. Also z.B. fülle ich die Box wie unten zu sehen. Nun möchte ich mit Hilfe der "1" (Wert aus DB) String "1 - Herr" zum positionieren erhalten. Das klappt irgendwie nicht. Hier kommt mal der Code (Iiihh):

Code:
 // Combo-Box Anrede füllen 
		cbxAnrede.addItem(new LookUpItem ("0", "0 - unbekannt")); 
		cbxAnrede.addItem(new LookUpItem ("1", "1 - Herr")); 
		cbxAnrede.addItem(new LookUpItem ("2", "2 - Frau")); 
 
 
// Setzten der ComboBox 
cbxAnrede.setSelectedItem(new LookUpItem("1","")); 
 
 
// Neue Klasse 
public class LookUpItem { 
	 final static String EMPTY_DESCRIPTION = ""; 
 
	 Object value; 
	 String description; 
 
	 public LookUpItem (Object value, String description) { 
		 this.value = value; 
		 this.description = description; 
	 } 
 
	 public String toString () { 
		 if ( description == null ) { 
		 return EMPTY_DESCRIPTION; 
		 } 
		 return description; 
	 } 
 
	 public Object getValue() { 
		 return value; 
	 } 
 
	 public boolean equals(Object o) { 
		 return value.equals(((LookUpItem)o).value); 
	 } 
}
 
Hallo,

bei
Code:
cbxAnrede.setSelectedItem(new LookUpItem("1",""));
ist das Objekt nicht identisch mit dem hinzugefügten Objekt.
Code:
cbxAnrede.addItem(new LookUpItem ("1", "1 - Herr"));
besser so:
Code:
cbxAnrede.setSelectedItem(new LookUpItem("1", "1 - Herr"));
oder noch besser so:
Code:
LookUpItem lookUpItem  = new LookUpItem ("1", "1 - Herr");
 cbxAnrede.addItem(lookUpItem);
 cbxAnrede.setSelectedItem(lookUpItem);
 
Hallo Bernd1984.

Ich habe doch aber nur den Wert "1" aus der DB. Mit Hilfe dieses Wertes will ich doch "1 - Herr" erhalten, um dann die Box auf den entsprechenden Eintrag setzen.

Dirk
 
Hallo,

aber du kennst doch die Zuordnung der ID's zu den Stammdaten. D.h. 1 aus der DB mit Stammdaten wird doch zu "1 - Herr". Und ob du die Stammdaten im Programm oder in der Datenbank festlegst spielt hier keine Rolle.
 
Zurück