Java TableModel和CellRenderer之间的值差异

Java TableModel和CellRenderer之间的值差异,java,swing,jtable,tablecellrenderer,Java,Swing,Jtable,Tablecellrenderer,我创建了ColumnAutofitable扩展JTable,参考 然而,它显示奇怪的行为,有时作为附加图片。 通过编写一些日志,我发现当列宽被错误地扩展时,TableModel中的值和CellRenderer中的值是不同的,这在正常情况下是相同的 正常情况下,TableModel的值和CellRenderer的文本相同 行==0,列==1,旧宽度==0,新宽度==78,值==00d 01:52:07,星期三== javax.swing.table.DefaultTableCellRendere

我创建了ColumnAutofitable扩展JTable,参考

然而,它显示奇怪的行为,有时作为附加图片。

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

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

行==0,列==1,旧宽度==0,新宽度==78,值==00d 01:52:07,星期三== javax.swing.table.DefaultTableCellRenderer$UIResource[Table.cellRenderer,-74,-15,0x0,无效,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border。EmptyBorder@1dd085d,flags=25165832,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=前导,horizontalTextPosition=尾随,iconTextGap=4,labelFor=,text=00d 01:52:07,verticalAlignment=中心,verticalTextPosition=C输入]

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

行==465,列==1,旧宽度==78,新宽度==333,值== 00时00分20分23分== javax.swing.table.DefaultTableCellRenderer$UIResource[Table.cellRenderer,216336,74x15,无效,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border。EmptyBorder@1dd085d,flags=25165832,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=前导,horizontalTextPosition=尾随,iconTextGap=4,labelFor=,text=驱动程序:S120146165 进货数量:0出货数量:1卡车司机:空 ,垂直对齐=中心,垂直文本位置=中心]

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

我的主要问题是:
1) 为什么会发生这种情况?这是JTable或CellRenderer的错误吗?

2) 如何在不修改核心java模块的情况下避免这种情况?

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

请编辑您的问题,以包括显示您描述的问题的单元格。