Swing/ColumnModelPersistence のバックアップ差分(No.1)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/ColumnModelPersistence へ行く。
- 1 (2015-12-14 (月) 03:16:54)
- 2 (2016-01-28 (木) 17:57:22)
- 3 (2017-06-29 (木) 12:57:28)
- 4 (2018-02-24 (土) 19:51:30)
- 5 (2018-07-01 (日) 00:26:02)
- 6 (2018-10-10 (水) 22:47:02)
- 7 (2020-10-06 (火) 14:49:07)
- 8 (2022-07-14 (木) 10:39:57)
- 9 (2025-01-03 (金) 08:57:02)
- 10 (2025-01-03 (金) 09:01:23)
- 11 (2025-01-03 (金) 09:02:38)
- 12 (2025-01-03 (金) 09:03:21)
- 13 (2025-01-03 (金) 09:04:02)
- 14 (2025-06-19 (木) 12:41:37)
- 15 (2025-06-19 (木) 12:43:47)
- 追加された行はこの色です。
- 削除された行はこの色です。
--- title: TableColumnModelをXMLファイルで保存、復元する tags: [JTable, JTableHeader, TableColumnModel, XMLEncoder, XMLDecoder] author: aterai pubdate: 2015-12-14T02:58:18+09:00 description: JTableのヘッダからTableColumnModelを取得し、XMLEncoderとXMLDecoderを使って、XMLファイルで保存、復元します。 --- * 概要 [#f7e34c15] `JTable`のヘッダから`TableColumnModel`を取得し、`XMLEncoder`と`XMLDecoder`を使って、`XML`ファイルで保存、復元します。 #download(https://lh3.googleusercontent.com/-3ZhmTqRFkgU/Vm2uUZ4_gCI/AAAAAAAAOI4/bY9IRX-guT4/s800-Ic42/ColumnModelPersistence.png) * サンプルコード [#e7a2c4b9] #code(link){{ class TableColumnModelPersistenceDelegate extends DefaultPersistenceDelegate { @Override protected void initialize( Class<?> type, Object oldInstance, Object newInstance, Encoder encoder) { super.initialize(type, oldInstance, newInstance, encoder); DefaultTableColumnModel m = (DefaultTableColumnModel) oldInstance; for (int col = 0; col < m.getColumnCount(); col++) { Object[] o = {m.getColumn(col)}; encoder.writeStatement(new Statement(oldInstance, "addColumn", o)); } } } }} * 解説 [#h55db5aa] 上記のサンプルでは、`JTableHeader`から`TableColumnModel`を取得し、`XMLEncoder`で`XML`ファイルに保存、`XMLDecoder`で復元することで、マウスドラッグによる列の入れ替えや`JPopupMenu`(右クリックなど)を開いて名前変更を永続化することができます。 * 参考リンク [#p3e2f68f] - [[JTableのモデルをXMLファイルで保存、復元する>Swing/PersistenceDelegate]] - [[JTableのSortKeyを永続化し、ソート状態の保存と復元を行う>Swing/SortKeyPersistence]] * コメント [#tf0d7d13] #comment #comment