有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    • 使用Double.Class

    • 对于XxxTableCellEditor使用JFormattedTextFieldJSpinner作为编辑器,使用NumberFormatDecimalNumberFormat中的适当方法格式化,包括舍入

    • 为所需列设置DefaultTableCellRenderer

    • 您也可以从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);
            }
        }