概要

JTableのヘッダからTableColumnModelを取得し、XMLEncoderXMLDecoderを使って、XMLファイルで保存、復元します。

サンプルコード

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));
    }
  }
}
View in GitHub: Java, Kotlin

解説

  • JTableHeaderからTableColumnModelを取得してXMLEncoderXMLファイルに保存
  • 保存したXMLファイルをXMLDecoderで復元することでマウスドラッグによる列の入れ替え、幅の変更、カラム名の変更など復元

参考リンク

コメント