Если мы считаем, что ваш столбец класса Double, вы можете сделать следующее:
DecimalFormat df = new DecimalFormat ("#,##0.######");
JFormattedTextField fmtTxtField = new JFormattedTextField(df);
TableCellEditor cellEditor = new DefaultCellEditor(fmtTxtField);
table.setDefaultEditor(Double.class, new DefaultCellEditor(fmtTxtField));
но вам нужно перезаписать реализацию делегата по умолчанию в DefaultCellEditor. (По крайней мере в Java6)
//DEFAULT IMPLEMENTATION INSIDE THE CONSTRUCTOR
....
public DefaultCellEditor(final JTextField textField) {
editorComponent = textField;
this.clickCountToStart = 2;
delegate = new EditorDelegate() {
public void setValue(Object value) {
textField.setText((value != null) ? value.toString() : "");
}
public Object getCellEditorValue() {
return textField.getText();
}
};
textField.addActionListener(delegate);
}
....
//YOUR IMPLEMENTATION
public class DoublesCellEditor extends DefaultCellEditor {
private JFormattedTextField textField;
public DoublesCellEditor(JFormattedTextField jft) {
super(jft);
this.textField = jft;
super.delegate = new EditorDelegate() {
public void setValue(Object value) {
textField.setValue(value != null ? ((Number) value).doubleValue() : value);
}
public Object getCellEditorValue() {
Object value = textField.getValue();
return value != null ? ((Number) value).doubleValue() : value;
}
};
}
}
И вместо этого используйте:
table.setDefaultEditor(Double.class, new DoublesCellEditor(fmtTxtField));