我在 java 中的 jTable 中遇到了指数值。实际上我正在从数据库中检索值,并且数量列值是双倍的。当 jTable 填充了值时,数量列值会自行转换为指数值,而数据库具有正常的双精度值。
我知道如何将值从指数转换为双精度值,但这次是在 jTable 中。请尽快帮助我。感谢问候。
尝试实现您自己的 cellRenderer 并格式化您的双精度。像这样
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);
}
});
作为更改 CellRenderers 的替代方法,这可能不适合某些类型的表,您可以将自定义 TableModel 实现为装饰器,该装饰器委托给包含数字的现有 TableModel,但它执行从数字到字符串的动态转换使用适当的列参数调用 getValueAt() 时满足您的需要。如果数字列是可编辑的,您可以在 setValueAt() 中进行相反的转换。