Hallo Forum,
mein Problem:
Ich habe in einer JTable eine editierbare Spalte, in den Zellen dieser Spalte eine JComboBox um einen Wert zu wählen/ändern. Das funktioniert nach der Anleitung von SUN "How to Use Tables" auch prima. Meine JComboBox enthält (extra Klasse) einen String, der angezeigt wird und eine ID, die ich auslesen und speichern möchte.
Wie kann ich die ID und nicht den angezeigten String bekommen?
Wie gesagt das Auslesen des angezeigten Wertes ist kein Problem, nur brauche ich die ID.
Wenn die JComboBox nicht in einer JTable-Zelle steckt, komme ich über
an die ID. Aber in einer Tabellenzelle ???
Vielen Dank schon mal.
mein Problem:
Ich habe in einer JTable eine editierbare Spalte, in den Zellen dieser Spalte eine JComboBox um einen Wert zu wählen/ändern. Das funktioniert nach der Anleitung von SUN "How to Use Tables" auch prima. Meine JComboBox enthält (extra Klasse) einen String, der angezeigt wird und eine ID, die ich auslesen und speichern möchte.
Wie kann ich die ID und nicht den angezeigten String bekommen?
Java:
class Row { // Klasse zum Füllen der jCombobox mit ID und Value
private String id, val; // habe ich auch hier aus dem Forum
public Row(String id, String val) {
this.id = id;
this.val = val;
}
public String getId() {
return id;
}
public String getVal() {
return val;
}
public String toString() {
return val;
}
...
TableColumn KSTColumn = jTable_letzteDS.getColumnModel().getColumn(3);
JComboBox KSTcomboBox = new JComboBox();
KSTcomboBox.addActionListener(new java.awt.event.ActionListener() {
public void itemStateChanged(java.awt.event.ActionEvent e) {
read_id();
}
});
KSTcomboBox.addItem(new Row("0", "111"));
KSTcomboBox.addItem(new Row("1", "112"));
KSTcomboBox.addItem(new Row("2", "211"));
KSTcomboBox.addItem(new Row("3", "311"));
KSTColumn.setCellEditor(new DefaultCellEditor(KSTcomboBox));
...
void read_id() { // soll IDaus Tabelle lesen
String kst = jTable_letzteDS.getValueAt(jTable_letzteDS.getSelectedRow(), 3).toString();
// So bekomme ich den in der Zelle angezeigten Wert !!!
// Wie komme ich hier an die ID ????
}
Wenn die JComboBox nicht in einer JTable-Zelle steckt, komme ich über
Java:
((Row) KSTcomboBox_Sub.getSelectedItem()).getId()
Vielen Dank schon mal.
Zuletzt bearbeitet: