gpt4 book ai didi

java - TableModel 和 CellRenderer 的值差异

转载 作者:行者123 更新时间:2023-12-02 07:18:42 24 4
gpt4 key购买 nike

我创建了扩展 JTable 的 ColumnAutofitTable,引用 http://tips4java.wordpress.com/2008/11/10/table-column-adjuster/

但是,有时如附图所示,它会表现出奇怪的行为。 Time Gap column is not resized correctly

通过写一些日志,我发现当列宽错误展开时,TableModel中的值和CellRenderer中的值是不同的,正常情况下是相同的。

正常情况下,TableModel 的值和 CellRenderer 的文本相同。

Row == 0, Column == 1, Old Width == 0, New Width == 78, Value == 00d 01:52:07, Renderer == javax.swing.table.DefaultTableCellRenderer$UIResource[Table.cellRenderer,-74,-15,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1dd085d,flags=25165832,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text= 00d 01:52:07,verticalAlignment=CENTER,verticalTextPosition=CENTER]

奇怪的情况,CellRenderer 文本值错误

Row == 465, Column == 1, Old Width == 78, New Width == 333, Value == 00d 00:20:23, Renderer == javax.swing.table.DefaultTableCellRenderer$UIResource[Table.cellRenderer,216,336,74x15,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@1dd085d,flags=25165832,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=DRIVER:S120146165 IN_QTY:0 OUT_QTY:1 TRUCKER:null ,verticalAlignment=CENTER,verticalTextPosition=CENTER]

我没有向表格添加任何自定义单元格渲染器。我使用 setDataVector() 将数据添加到表中,以防止调整每行的大小。

我的主要问题是:
1)为什么会出现这种症状?是JTable还是CellRenderer的bug吗?
2)如何在不修改核心java模块的情况下避免这种事情?

最佳答案

渲染器是共享资源,您可能看到渲染器使用的最后一个值/单元格,这可能不是您正在报告的单元格

关于java - TableModel 和 CellRenderer 的值差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com