Swing/SortKeyPersistence のバックアップ(No.6)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/SortKeyPersistence へ行く。
- category: swing folder: SortKeyPersistence title: JTableのSortKeyを永続化し、ソート状態の保存と復元を行う tags: [JTable, RowSorter, XMLDecoder, XMLEncoder] author: aterai pubdate: 2015-09-21T01:26:03+09:00 description: JTableのSortKeyを永続化して、そのソート状態をXMLファイルで保存、復元できるように設定します。 image:
概要
JTable
のSortKey
を永続化して、そのソート状態をXML
ファイルで保存、復元できるように設定します。
Screenshot
Advertisement
サンプルコード
File file = File.createTempFile("output", ".xml");
try (XMLEncoder xe = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(file)))) {
xe.setPersistenceDelegate(
RowSorter.SortKey.class,
new DefaultPersistenceDelegate(new String[] {"column", "sortOrder"}));
xe.writeObject(table.getRowSorter().getSortKeys());
//...
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JTable
のソート状態を表すRowSorter.SortKey
を永続化するため、以下のような設定を行っています。
RowSorter.SortKey
クラスのコンストラクタの引数をプロパティ名としてDefaultPersistenceDelegate
を作成RowSorter.SortKey
クラスをXML
で書き出すため、XMLEncoder#setPersistenceDelegate(...)
で上記のPersistenceDelegate
を設定
- 注:
TableModel
の書出しには、別途JTableのモデルをXMLファイルで保存、復元するを使用- このサンプルでは、カラムヘッダの幅や順序には対応していない
- メモ: JTable Inhalte speichern – Byte-Welt Wiki
- または、TableColumnModelをXMLファイルで保存、復元するのような
DefaultPersistenceDelegate
を使ってカラムヘッダの幅や順序を保存する方法がある