アプリケーションの UI 永続化メソッドをいくつか書いています。テーブル モデルに固定された N 列のセットを持つ JXTable に拡張しようとしています。
JXTable の列 #k について次の情報を取得および設定するにはどうすればよいですか。ここで、k はテーブル モデルの順序での列番号です。思ったほど簡単ではありません。少なくとも、いくつかのトリッキーな情報が欠けています。
- 列幅
- 列の可視性
- 列の順序
TableColumnModelExt.getColumns()
解析に問題があるこのクレイジーなメモが含まれています。
java.util.List<javax.swing.table.TableColumn> getColumns(boolean includeHidden)
含まれている TableColumns のリストを返します。includeHidden が true か false かに応じて、非表示の列をそれぞれ含めるか除外します。false の場合、List に対する Iterator は、getColumns() によって返される Enumeration と同等です。
注: リスト内の列の順序は、非表示の列が含まれているかどうかによって異なります。前者の場合は挿入順序であり、後者の場合は表示されている列の現在の順序です。
また、使用方法は知ってJTable.convertColumnIndexToView()
いますが、非表示の列に対して -1 を返し、非表示の列が再び表示された場合にどの順序になるかについての情報を残しません。JXTable は、列の可視性を復元できるため、この情報を認識しており、非表示になる前の場所に列を配置します。