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:
nix da
"getDBID" ist nicht bekannt
hier die Klasse:
JComboBox wird so gefüllt:
nach dem Klick auf JButton:
folgendes habe ich noch ausprobiert:
habe ich was falsch verstanden?
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();
"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;
}
}
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)));
}
}
Code:
@Override
public void actionPerformed(ActionEvent ae) {
// TODO Auto-generated method stub
if(ae.getActionCommand().equals("btleihen")){
System.out.println(bkurs.getSelectedItem().getDBID()); // Fehler
}
}
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?