Swing/SortKeyPersistence のバックアップ(No.8)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/SortKeyPersistence へ行く。
- 1 (2015-11-13 (金) 00:34:06)
- 2 (2015-12-14 (月) 03:12:44)
- 3 (2016-01-12 (火) 17:58:26)
- 4 (2016-11-18 (金) 15:22:00)
- 5 (2017-11-21 (火) 16:08:57)
- 6 (2017-12-01 (金) 18:55:29)
- 7 (2019-05-22 (水) 19:35:38)
- 8 (2019-08-16 (金) 13:35:14)
- 9 (2021-04-10 (土) 02:26:01)
- 10 (2025-01-03 (金) 08:57:02)
- 11 (2025-01-03 (金) 09:01:23)
- 12 (2025-01-03 (金) 09:02:38)
- 13 (2025-01-03 (金) 09:03:21)
- 14 (2025-01-03 (金) 09:04:02)
- 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
を使ってカラムヘッダの幅や順序を保存する方法がある