作者sbrhsieh (十年一梦)
看板java
标题Re: [问题] JTable的排序与上色
时间Thu Oct 17 16:32:06 2013
※ 引述《prjryu (再努力一点)》之铭言:
: 我希望得到一个JTable 它可以排序并将非预期的数字以不同的底色标出
: 我先是用getTableCellRendererComponent做出了标出非预期的数字cell的底色的功能,
: 然後使用RowSorter做排序的功能,
: 发现它的排序方式是把cell的内容当obj排序的,并非预期的递增或递减排序
: ( ex: 排序 1, 100, 11
: 预期结果: 1, 11, 100
: 执行结果: 1, 100, 11
: )
: 为了解决这个问题,我将addRow()阵列里数字的Object都改成double的型态,
: 这样就可以正确显示数字的排序结果了。
: 但是前面写的标出底色的功能却失效了,
: 不知道为什麽table在重画cell的时候,
: 原本obj型态的cell会呼叫自己写的getTableCellRendererComponent且正常上色,
: 而後来改成double型态的cell却不会呼叫我自己写的getTableCellRendererComponent,
: 这是我的问题所在,这导致我无法正确的为cell上色...
: 请指教是否我的用法有错、有什麽其他方法可以解决吗?
老实说这样的资讯是看不出来你哪边写错。
不过用猜的,会不会是你把资料从 string 改成 double 後,你的 table cell
renderer 的 code 忘了作对应的改变?
补:
若你不是针对 table column 去设定 cell renderer 而是从 table 本身去设定
default cell renderer,那麽 column data 型态变更後,你设定 default cell
renderer 时指定的型别也要跟着改(除非你指定 Object 但会影响其他的 column)。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 36.238.39.58
※ 编辑: sbrhsieh 来自: 36.238.39.58 (10/17 16:41)