• 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: https://lh3.googleusercontent.com/-x9GESOvXeyc/Vf7c-CY1veI/AAAAAAAAOCE/lUO7hcq8-fw/s800-Ic42/SortKeyPersistence.png

概要

JTableSortKeyを永続化して、そのソート状態をXMLファイルで保存、復元できるように設定します。

サンプルコード

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を設定

参考リンク

コメント