如何避免jtable中的指数值

时间:2013-10-11 07:37:34

标签: java swing jtable exponent

我在java中的jTable中遇到了指数值。实际上我正在从数据库中检索值,并且金额列值是双倍的。当jTable用值填充时,数量列值会自动转换为指数值,而数据库具有正常的双精度值。

我知道如何将exponent的值转换为double,但这次是在jTable中。 请尽快帮我解决问题。谢谢你。

2 个答案:

答案 0 :(得分:2)

尝试实现您自己的cellRenderer并格式化您的double。喜欢这个

jTable.getColumnModel().getColumn(2).setCellRenderer(new DefaultTableCellRenderer()
        {
            @Override
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                return super.getTableCellRendererComponent(table, String.format("%s",(double)value), isSelected, hasFocus, row, column);
            }
        });

答案 1 :(得分:-1)

作为改变CellRenderers的替代方法,这可能不适合某些类型的表,您可以将自定义TableModel实现为装饰器,委托给包含数字的现有TableModel,除了它从数字执行动态转换使用适当的列参数调用getValueAt()时根据需要使用字符串。如果数字列可编辑,则可以在setValueAt()中执行相反的转换。