Methode der Class im JComboBox abfragen

Status
Nicht offen für weitere Antworten.

richardkrieger

Aktives Mitglied
hallo,

habe hier gelesen, dass es möglich ist, eigene Klasse in JComboBox reinzuschieben. Hauptsache, man überschreibt "toString()". "Na, super!" dachte ich mir. Die Items werden aus einer Datenbank ausgelesen. Für die Weiterverarbeitung kann ich dann in dieser Klasse die Datenbank-IDs abspeichern und mit einer Methode abfragen:
Code:
meinecombobox.getSelectedItem.getDBID();
nix da
"getDBID" ist nicht bekannt
hier die Klasse:
Code:
public class CBItemKurs{
	
	private String id;
	private String kurs;
	private String lehrer;
	
	public CBItemKurs(String[] daten){
		id=daten[0];
		kurs=daten[1];
		lehrer=daten[2];
	}
	
	public String getDBID(){
		return id;
	}
	
	@Override
	public String toString(){
		String rgwert;
		rgwert=kurs+", "+lehrer;
		if(rgwert.length()>40){
			rgwert=rgwert.substring(0, 40)+"...";
		}
		return rgwert;
	}
}
JComboBox wird so gefüllt:
Code:
	private void setCBKurs(){
		sqlkurs="SELECT ";
		String[] felder=ini.getTabheadALL(2);
		for(int i=0;i<felder.length;i++){
			sqlkurs+=felder[i].toLowerCase()+",";
		}
		sqlkurs=sqlkurs.substring(0, sqlkurs.length()-1);
		sqlkurs+=" FROM "+ini.getTabname(2);
		cwkurs=sql.getDaten(sqlkurs, felder);
		for(int i=0;i<cwkurs.size();i++){
			bkurs.addItem(new CBItemKurs(cwkurs.get(i)));
		}
	}
nach dem Klick auf JButton:
Code:
	@Override
	public void actionPerformed(ActionEvent ae) {
		// TODO Auto-generated method stub
		if(ae.getActionCommand().equals("btleihen")){
				System.out.println(bkurs.getSelectedItem().getDBID()); // Fehler
			}
		}
folgendes habe ich noch ausprobiert:
Code:
System.out.println(bkurs.getSelectedItem().getClass.getDBID()); // Fehler

System.out.println(bkurs.getSelectedItem().toString()); // normale ausgabe "toString"
System.out.println(bkurs.getSelectedItem().getClass.toString); // Klassenname wird korrekt ausgegeben

habe ich was falsch verstanden?
 
'Casten' schon mal gehört?

CBItemKurs item = (CBItemKurs) bkurs.getSelectedItem();
// auf item nun vieles aufrufbar
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben