そのJTable
ため、私は、独自のカスタムデータモデルに関連付けられているを使用しています。それだけはすべて機能しますが、私が抱えている問題は、テーブルに変更を加えるたびに(tableDataChanged、tableStructureChangedなどを実行する)、すべての列幅がデフォルト値にリセットされることです。TableColumnModel
これはデフォルトで割り当てられたものと関係があることを調査から理解しています。このリセット以外では、の機能には満足していDefaultTableColumnModel
ますが、ユーザーが列のサイズを変更する必要がある場合(列ヘッダーの端をドラッグして)、列の幅を保持したいと思います。
私はsetPreferredWidth()
TableColumnsを認識しており、それを成功させることができました。私の質問は、この好ましい幅を保存して設定するためにどのようなイベントをリッスンする必要があるかということだと思います。テーブルヘッダーにを追加しようとしましたPropertyChangeListener
が、サイズを変更しようとすると、StackOverflowが発生します(再帰的に実行されていると想定しています)。列幅のデータモデルにデータメンバーを追加してそこに保存することはまったく問題ありませんが、これらの幅がfireTableStructureChanged()
、などによって上書きされないようにいつ/どのように設定するかがわかりません。 。イベント。考え?