Swing中的Round Double值

时间:2015-10-15 06:13:12

标签: java swing

我提到的代码如下所示。我的问题是在data.setValueAt(28.7567,1,1);该值应显示为28.757,但其取为28.7567000000000,因此添加额外零或其他类的Jtable.class是否认为该值为double,以及如何解决此问题?

import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import util.leveleditor.components.LETableModel;

public class JRTest 
{
 public static void main(String args[])
{
    Object[][] datal = new Object[30][30];
    Object[] titles = new Object[30]; 

    LETableModel model = new LETableModel(datal, titles);

    JTable data = new JTable(model);

    data.setFillsViewportHeight(true);
    data.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    data.setShowGrid(true);
    data.setGridColor(Color.BLACK);
    data.setTableHeader(null);

    JFrame frame = new JFrame("Test");

    frame.add(new JScrollPane(data));

    data.setValueAt(28.7567, 1, 1);

    frame.pack();
    frame.setVisible(true);
}
}

1 个答案:

答案 0 :(得分:1)

JTable.setValueAt()方法的第一个参数只是对象类型。所以,如果你想要28.757,那么直接把它作为String传递。

data.setValueAt("28.757", 1, 1);

或者如果你想传递一个Double值,如果你想要传递一个Double值,那么请使用formatter。

检查以下链接: Best way to Format a Double value to 2 Decimal places