在JTable中显示钱但保留排序为double的能力

时间:2011-07-22 06:24:00

标签: java swing sorting jtable tablecellrenderer

我有一个JTable,其中一列是美元和美分的金额。我将此TableColumn定义为Double并且它正确对齐并且在排序时,它将其排序为double(而不是字符串)。这一切都很好。 我现在的问题是它会截断尾随的零。 100.00显示为100 0.00显示为0等。我尝试了一个TableCellRenderer但是虽然这会导致money列显示尾随零,但现在所有金额都是左对齐的,JTable将其视为字符串。
我希望尾随零保留在显示中,但也保留数据类型,以便进行排序和右对齐。如果有更好的方法,数据类型不需要是double。

2 个答案:

答案 0 :(得分:4)

我找到了完美的链接。这是第一次工作。只需复制代码即可。

http://tips4java.wordpress.com/2008/10/11/table-format-renderers/

答案 1 :(得分:3)

如果你想精确地处理金钱,你应该把它表示为美分和整数,或者如果你需要处理大量的金额。浮点数可能会导致问题,因为它们会受到precision problems

的影响

这将保留您排序,删除尾随零问题的能力,为您提供所需的精度,并且使用自定义渲染器,您可以获得所需的小数点。