雑記 2012/05/22/火曜 から 2012/07/12/木曜
再び、前回の続きで主にJava SwingのJTableをいじる。
しかし、ファイルの再読込で表示内容が更新出来ない。
Table Modelを継承してfire系で通知をすると、ファイル再読込で更新はされるのだけど、
ソートを実行した後に、表示しているデータと、再読込したデータの保持の同期、再表示がされていないようで、
再度ソートを実行しないと表示が更新されない上に、
ソート状態で表示されているデータと、再読込をしたデータの行数に差があるとエラーが出てしまい、
しかも、ソートとは無関係に、行の挿入・削除などの編集が効かなくなる。
setModel、repaint、validate、revalidate、removeなどで更新されないか、
別のクラス、メソッドに分けたり、実引数などで受け渡して別処理にしたり、
色々と試したのですが、編集が効かなくなる方法でしか表示内容が更新されない。
setFillsViewportHeightをしないと、行が増えた時に、増えた行の分の表示は、
何かの形で手動により更新しないと表示されないのだけは解りましたが。
ファイル再読込時にちゃんとデータが更新されるサンプルコードを見るかぎり、
ファイル読み込み、readLine、変数に格納、テーブルにデータを渡す処理を一つのファイル内に纏めています。
setFillsViewportHeightも別に必要ない。
ワシのは、ファイル読み込み、readLine、変数に格納、の部分を別のファイルに記述、
テーブルを表示する部分を更に別のファイルに記述し、
読み込んだデータを格納する変数を更に別のファイルにしています。
各処理を分けているせいで上手いこと出来ない模様・・・。
編集するデータは複数の項目に分けてあり、
それぞれにデータを割り振り、項目毎に別々のテーブルに表示して編集したデータを元に、
更にテーブルとは別の形で表示する為にそれぞれを分けていたのが裏目に出たようです。
どうしたもンだかなぁ・・・。
これだけでずいぶんと悩み続けて止まったまま。(´A`)