我的JTable
设置为:
theTable.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
当用户调整列的宽度时,它会考虑该宽度,直到将新行添加到表中。此时,所有列都恢复为原始宽度。
在调试器中,当用户调整宽度并且preferredWidth
和minWidth
设置为适当的值时,列的maxWidth
会发生变化。在添加新行之后的某个时刻,preferredWidth
将恢复为最初绘制表时使用的值。
如何在添加新行后让表格尊重用户调整的列宽?
答案 0 :(得分:2)
主要原因JTable
将重置表列是因为它认为表的基础结构已更改。
当表格模型更改(JTable#setModel
)或列模型已更改(JTable#setColumnModel
)或您从tableStructureChanged
内调用TableModel
时,可能会导致此问题从AbstractTableModel
延伸或以其他方式导致TableModelEvent.HEADER_ROW
事件被触发......
当然,这都是没有MCVE
的学术界人士