在Jtable列中显示已处理的值并使用原始值进行排序?

时间:2015-03-03 16:04:46

标签: java swing jtable

我在数据库中有一个表,该表的第一列包含一些数值,这是原始数据。有一种特定的算法可以将这些原始数值转换为已处理的文本值。
我如何实现:

  • 在Jtable中显示已处理的文本数据。我应该在哪里处理原始数值?在结果集?在数据模型?在jtable?
  • 使用此列对Jtable中的行进行排序,但使用原始原始数值,而不是显示的已处理文本值。这有可能吗?

感谢

1 个答案:

答案 0 :(得分:4)

原始数据应存储在TableModel中。渲染器用于控制表中显示的内容。例如,您将123456存储为TableModel中的Integer,然后整数的默认渲染器将在表中显示“123,456”。

因此,在您的情况下,您需要创建自定义渲染器。

看看Table Format Renderers。它显示了一个简单示例,说明如何覆盖setValue(...)的{​​{1}}方法。

  

我想使用此列对Jtable中的行进行排序,但使用原始的原始数值,而不是显示的已处理文本值。这有可能吗?

是的,表格分类器根据TableModel中的数据进行排序。