これが正しい方法かどうかはわかりませんが、そう思います。DecimalFormatを使おうとしましたが、理解できません。誰かが私を助けることができますか?これは、このDefaultCellEditor + DecimalFormatを実行する正しい方法ですか?
質問する
1538 次
1 に答える
4
を使用して列クラスをオーバーライドする
Double.Class
またはをエディターとして
XxxTableCellEditor
使用するために、またはからの適切なメソッドによってフォーマットされ、丸めを含みますJFormattedTextField
JSpinner
NumberFormat
DecimalNumberFormat
DefaultTableCellRenderer
希望の列に設定Rounding method
あなたはから(あまりにも)適切に設定することができますNumberFormat
例えば
TableColumnModel tcmAmount = myTable.getColumnModel();
TableColumn tcAmount = tcmAmount.getColumn(2);
tcAmount.setCellRenderer(new DRManMmAmount(1)); // decimal precision
と
private static class DRManMmAmount extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
int precision = 0;
Number numberValue;
NumberFormat nf;
public DRManMmAmount(int p_precision) {
super();
setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
precision = p_precision;
nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(p_precision);
nf.setMaximumFractionDigits(p_precision);
//nf.setMinimumFractionDigits(2);
//nf.setMaximumFractionDigits(2);
}
@Override
public void setValue(Object value) {
if ((value != null) && (value instanceof Number)) {
numberValue = (Number) value;
value = nf.format(numberValue.doubleValue());
}
super.setValue(value);
}
}
于 2012-11-07T11:19:34.693 に答える