我正在为应用程序编写一些UI持久性方法。我试图扩展到JXTable,在表模型中有一组固定的N列。JXTable:如何查询列模型的状态?
如何获取并设置JXTable中列#k的以下信息,其中k是表格模型顺序中的列号?它不像听起来那么容易,或者至少我错过了一些棘手的信息。
- 列宽
- 列知名度
- 列顺序
TableColumnModelExt.getColumns()
包括这个疯狂的说明,其中我有麻烦解析:
java.util.List<javax.swing.table.TableColumn> getColumns(boolean includeHidden)
返回包含的TableColumns的列表。包含或排除不可见列,具体取决于includeHidden是true还是false。如果为false,则List上的迭代器等同于getColumns()返回的枚举。
注意:列表中列的顺序取决于是否包含不可见列,在前一种情况下,它是后者中的插入顺序,它是可见列的当前顺序。
而且,我知道如何使用JTable.convertColumnIndexToView()
,但它隐藏的列返回-1,并没有留下有关哪些命令,如果它再次可见时,隐藏的列会去。 JXTable知道这些信息是因为您可以恢复列可见性,并且它将列放在隐藏之前的位置。
你为什么觉得这很疯狂?小心:我写了文档和JXTable的其他几乎所有内容:-) – kleopatra
好的,好的,让我对这个客观一点。 JXTable使用与JTable不同的术语。 JXTable使用“插入顺序”和“可见列的当前顺序”,而JTable使用“视图”和“模型”的索引。如果“查看顺序”=“可见列的当前顺序”和“模型顺序”=“插入顺序”,那么如果JXTable文档与JTable.convertColumnIndexToView所表示的这些概念相对应,这将非常有帮助。 –
查看你的目标点 - 但是插入顺序可能与模型顺序不同,如果......以及最初的列未按照模型顺序插入:-)在支持隐藏列的情况下,JXTable添加了一个额外的“维度”:再次显示隐藏的列必须支持在隐藏的时刻将其移动到最接近其视图位置的位置,而不是移动可见列。所以有第三个坐标系:当前视图(当前可见),潜在视图(当所有隐藏都可见)和模型。更好地阐明这一事实的贡献已被高兴地接受:-) – kleopatra