Ich habe folgenden CheckBoxCellEditor (unwichtige Funktionen habe ich zwecks Übersicht nicht eingefügt):
Mein Problem ist, dass der neue Wert nicht gesetzt wird, wenn ich den Zustand der CheckBox ändere, sondern erst, wenn ich eine neue Zelle auswähle. Kann mir jemand ein Tipp geben, wie ich dieses Verhalten verändern kann. Danke im Voraus.
Java:
public class BooleanEditorComponent extends AbstractCellEditor implements TableCellEditor, ItemListener {
private String value;
private JCheckBox checkbox;
public BooleanEditorComponent() {
super();
checkbox = new JCheckBox();
checkbox.addItemListener(this);
}
//Implement the one CellEditor method that AbstractCellEditor doesn't.
public Object getCellEditorValue() {
Boolean value = Boolean.valueOf(checkbox.isSelected());
return value;
}
//Implement the one method defined by TableCellEditor.
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
checkbox.setHorizontalAlignment(JLabel.CENTER);
checkbox.setForeground(table.getForeground());
checkbox.setBackground(table.getBackground());
if(value.equals("true")) {
checkbox.setSelected(true);
}
else {
checkbox.setSelected(false);
}
return checkbox;
}
public void itemStateChanged(ItemEvent e) {
fireEditingStopped();
}
}
Mein Problem ist, dass der neue Wert nicht gesetzt wird, wenn ich den Zustand der CheckBox ändere, sondern erst, wenn ich eine neue Zelle auswähle. Kann mir jemand ein Tipp geben, wie ich dieses Verhalten verändern kann. Danke im Voraus.