我必須在JTable中創建一個列,它是雙精度類型以獲取數字並精確地舍入所有數字。不僅要以精度顯示它們,而且要將數字寫入精確的數據2.事實上,如果我寫入2.456,它應該在單元格和數據中寫入2.46。如何做到這一點的最佳方式?使用自定義單元格渲染器還是自定義單元格編輯器? 我有這樣的代碼,但它不要改變數據只顯示了單元Jtable與雙單元格類型精度
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);
}
}
JTable有兩種狀態,渲染器和編輯器,渲染器即將在XxxTableModel格式化值店,不出意外,編輯器約增加,motify,刪除值存儲在XxxModel,在CellEditor不存在的時候,然後添加,修改,刪除值存儲在XxxTableModel – mKorbel