我正在使用JTable来显示信息。在渲染信息后,如果我拖动列以重新排序它们,则会话中的信息以相同的方式显示。但是,当我尝试通过迭代列名来检查更改时,顺序与旧顺序相同。为什么API中没有最新视图?
JTable
的JavaDoc对此有所说明:JTable
中重新排列列,以使视图的列以与模型中的列不同的顺序显示。这不会影响模型的实现:当重新排序列时,JTable
在查询模型之前会在内部维护列的新顺序并转换其列索引。
JTable
提供了convertColumnIndexToModel()
和convertColumnIndexToView()
方法,您可以使用它们将列号从一种转换为另一种。您可以使用这些方法来确定列是否已重新排列。
要在发生更改时得到通知,请使用TableColumnModelListener
:
myTable.getColumnModel().addColumnModelListener( new TableColumnModelListener() {
//etc.
} );