JTable单元格中的格式编号

时间:2018-09-23 12:24:42

标签: java

我希望jtable单元格中的数字为9.12,但我得到了9.1200。

此代码未做任何更改,并且双精度值显示为9.1200。 我该怎么办?

数据库中存储变量的表是货币类型。

  try (Connection con = DriverManager.getConnection(jd+acc)) {
                    Statement stm=con.createStatement();
                    ResultSet rs=stm.executeQuery("select * from product ");
                    while(rs.next()){
                        rows=rs.getRow();
                        cell=new String[rows][10];
                    }
                }


            try (Connection con = DriverManager.getConnection(jd+acc)) {
                Statement stm=con.createStatement();
                ResultSet rs=stm.executeQuery("select * from product ");
                while(rs.next()){
                    rows=rs.getRow();
                    cell=new String[rows][10];
                }
            }



catch(SQLException ex){} 


            try (Connection con = DriverManager.getConnection(jd+acc)) {
                Statement stm=con.createStatement();
                ResultSet rs=stm.executeQuery("select * from product ");
                while(rs.next()){
                    for(colum=0;colum<10;colum++){
                        cell[row][colum]="   "+rs.getString(colum+1)+"   " ;
                    }
                    row++ ;
                }
            }


       catch(SQLException ex){}


DefaultTableModel table1=new DefaultTableModel(cell,header);

          table=new JTable(table1);

           table.getColumnModel().getColumn(7).setCellRenderer(
     new DecimalFormatRenderer() );

          JScrollPane scrol=new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS );
          table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        table.setRowSelectionAllowed(false);
          table.setBackground(Color.WHITE);

add(scrol);

//和此类来处理双精度值的格式

 public static class DecimalFormatRenderer extends DefaultTableCellRenderer {
    private static final long serialVersionUID = 1L;
    private static final DecimalFormat formatter = new DecimalFormat( "#.##" );
public DecimalFormatRenderer(){
    super();
    formatter.setMinimumFractionDigits(2);
}

@Override
public Component getTableCellRendererComponent(
    JTable table, Object value, boolean isSelected, boolean hasFocus, int r, int column) {

    if(value instanceof Double){

       value = formatter.format((Number)value);
    }

    return super.getTableCellRendererComponent(
        table, value, isSelected, hasFocus, r, column );
} 
} 

0 个答案:

没有答案
相关问题