在java中,我被jTable中的指数值搞得焦头烂额。实际上,我正在从数据库中检索值,并且在数量列中的值是双精度的。当jTable中填充了值时,amount列的值会自动转换为指数值,而数据库中的值通常为双精度值。
我知道如何将值从指数转换为双精度,但这次是在jTable中。请尽快帮我解决这个问题。谢谢你的问候。
发布于 2013-10-11 15:47:40
尝试实现您自己的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);
}
});发布于 2013-10-11 15:59:05
作为更改列的替代方案(这可能不适用于某些类型的表),您可以实现一个自定义的列作为装饰器,将其委托给包含数字的现有TableModel,但当使用适当的列参数调用getValueAt()时,它将根据您的需要执行从数字到字符串的动态转换。如果数字列是可编辑的,则可以在setValueAt()中执行相反的转换。
https://stackoverflow.com/questions/19312751
复制相似问题