我在java中的jTable中遇到了指数值。实际上我正在从数据库中检索值,并且金额列值是双倍的。当jTable用值填充时,数量列值会自动转换为指数值,而数据库具有正常的双精度值。
我知道如何将exponent的值转换为double,但这次是在jTable中。 请尽快帮我解决问题。谢谢你。
答案 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()中执行相反的转换。