\"setValueAt\" funktion i AbstractTableModel
Jeg har en JTable og en tilhørende tabel model, som nedarver fra AbstractTableModel. Jeg overwriter funtionen setValueAt(), som er den funtion der automatisk bliver kaldt, når indholdet i en celle ændres. Funktionen er vist herunder:public void setValueAt(Object value, int nRow, int nCol)
{
String svalue = value.toString();
System.out.println(\"Value: \" + svalue);
}
Problemet er bare, at parametren value, ALTID indeholder strengen \"false\", hvilket jeg undrer mig meget over!
Det skal hertil siges, at jeg bruger en cunstom cell editor, som nedarver fra DefaultCellEditor, vist herunder:
public class MyCellEditor extends DefaultCellEditor
{
MyCellEditor()
{
// Unfortunately, the constructor expects a check box, combo box, or text field:
super(new JCheckBox());
}
protected void fireEditingStopped() {
super.fireEditingStopped();
}
// In this function we return the editor component we want to use:
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int nRow, int nCol)
{
return new MyTextField();
}
}
Jeg kan godt regne ud, at strengen \"false\" på en eller anden måde stammer fra JCheckBox\'en i editorens constructor, men jeg ville da mene, at det skulle være den tekststreng som mit MyTextField objekt genererer, som burde blive returneret til AbstractTableModel, eller hvá?
