我必须在 JTable 中创建我的一列,它是双精度类型,以仅获取数字并以精度 2 舍入所有列。不仅以这种精度显示它们,而且以精度 2 将数字写入数据。事实上,如果我写入 2.456 它应该在单元格和数据中写入 2.46。最好的方法是如何做到这一点?使用自定义单元格渲染器还是使用自定义单元格编辑器?我有这个代码,但它不会改变数据它只在单元格上显示正确的数据
public class DoubleCellRenderer extends DefaultTableCellRenderer {
int precision = 0;
Number numberValue;
NumberFormat nf;
public DoubleCellRenderer(int aPrecision) {
super();
precision = aPrecision;
setHorizontalAlignment(SwingConstants.RIGHT);
nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(aPrecision);
nf.setMaximumFractionDigits(aPrecision);
}
@Override
public void setValue(Object value) {
if ((value != null) && (value instanceof Number)) {
numberValue = (Number) value;
value = nf.format(numberValue.doubleValue());
}
super.setValue(value);
}
}