在JTable中移动列后设置列索引

Sum*_*udu 1 java swing jtable

我正在使用a JTable,我需要允许移动其列.但是出现了问题.一旦他们重新安排,就像他们只改变了内容和标题.但我也需要改变它们的索引.

为了更清楚,我举一个例子.假设我的第一列被称为"名字".调用'setName()'方法时,无论列在何处,名称都必须始终转到该列.但不是第一栏.希望你明白我的意思!

我已经写完了所需的方法.希望有一种方法可以实现这一点,而无需触及完成的方法.

任何帮助深表感谢!!!

Rob*_*bin 6

为了更清楚,我举一个例子.假设我的第一列被称为"名字".调用'setName()'方法时,无论列在何处,名称都必须始终转到该列.但不是第一栏.希望你明白我的意思!

如果要更改数据,只需TableModel直接更改基础.列的顺序永远不会改变,TableModel只有在视图(JTable)中才会重新排序这些列.

如果你想要浏览表格,你必须使用可用的JTable#convertColumnIndexToModel(视图 - >模型)和JTable#convertColumnIndexToView(模型 - >视图)方法将"视图坐标"转换为"模型坐标",如@MadProgrammer所述.

您当然不应该更新您在其中一条评论中提到的setValueAt方法TableModel.如前所述,TableModel不会改变列的顺序,因此setValueAt应始终使用"模型坐标"调用,因此无需转换那些

  • 好的,我明白了。这完全是我的错。我应该在发表上述评论之前尝试过。有用!!我所要做的就是在添加/删除值时处理模型。是的,这就是你说的……谢谢罗宾。(也非常感谢@MadProgrammer。你们俩都帮了很多忙。必须将其标记为答案,因为它提供了更多详细信息,cz 无法标记两个答案......) (2认同)