データにカスタムソートが適用されるjtableがあります。テーブルが最初に起動されるとき、ソートにはStringデータのみが含まれているので、ソートは正常に行われます。テーブル構造が変更された後(同じ列にSting( "N/A")とダブルデータの組み合わせを持つ新しい列が追加されると、カスタムソートアルゴリズムが削除されたように見える) JTableのでdefaultsortingが、混合データを持つ列は、ClassCastExceptionができます。そこに私は、すぐtableStructureChangeイベントが発生したとして、それをカスタムの並べ替えを維持するか、再適用することができる。テーブル構造が変更された後にカスタムソートをjtableに保持する
1
A
答えて
0
public void sortTable(){
TableRowSorter<TableModel> sort = new TableRowSorter<TableModel>(Jtable.getModel());
Jtable.setRowSorter(sort);
List<RowSorter.SortKey> sortKeys = new ArrayList<>();
sortKeys.add(new RowSorter.SortKey(4, SortOrder.ASCENDING));
sortKeys.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
sorter.setSortKeys(sortKeys);
}
のこれはあなたが実際のJTableを並べ替える必要がある方法です。このコードで試してみてください。例外があれば投稿してください。
0
なぜtableStructureChanged
イベントが生成されるのですか?これは、テーブルの列構造が変更されたことを意味します。hあなたは同じ列が存在することを知っていますか?
テーブルをリフレッシュする場合、なぜ新しいTableModeを作成するのですか?代わりに、テーブルからすべてのデータ行を削除することができます(つまり、DefaultTableModelでsetRowCount(0)を使用)し、新しいデータ行を挿入します。このようにしてtableStructureEvent
は生成されません。
その他のオプションは、ソート情報を保存し、ソーターを再作成することです。現在のソートキーは、DefaultRowSorterから取得できます。だから、基本的なロジックは次のようになります。
- getSortKeys()
- リフレッシュするTableModel
- setSortKeys(...)
チェックアウトソーターを再作成:ワーキング例えばTrying to get the sorter positon to retain after a table refresh 。
関連する問題
- 1. ビューが変更された後にセルを保持する
- 2. ソナープラグインがパッケージ構造変更後にコンパイルされない
- 3. 構造を変更した後にアプリケーションがクラッシュする
- 4. ハンドル構造の変更後にMATLAB GUIがオブジェクトを「忘れる」
- 5. レプリケートされているテーブルのデータベース構造を変更する
- 6. 構造体またはローカルに保持されているC変数?
- 7. コピーテーブルの構造が自動的に変更され、テーブル名が変更されるmysql
- 8. Pythonでネストされたリストツリー構造を変更するには?
- 9. Vimで保存した後に構文のハイライトが変更される
- 10. ブランチの変更後にプロジェクトの構造が更新されない
- 11. レコード構造を保持したままテーブルを空ける
- 12. イベントハンドラに渡された構造体を変更しますか?
- 13. Jtableで列をドラッグした後に列インデックスが変更されない
- 14. クラス構造が変更された後に古いxmlをアンマーシャリングする問題に直面しています
- 15. はテーブル構造に変更されましたが、hibernateはそれを更新しません
- 16. テーブル構造を変更せずにカスケードを削除する
- 17. django-tables2テーブルのビジュアル構造を変更するには?
- 18. オリエンテーションが変更されたときにAndroid webviewのフォームデータが保持される
- 19. 修正されたHTMLテーブルを相対テーブル保持ディメンションに変換する
- 20. 最後にテーブルの列が変更されたとき
- 21. 正規化されたテーブル構造対フラットテーブル構造
- 22. NPM中にフォルダ構造を変更すると、私は次の構造を持つノードモジュールを持っている
- 23. SAS:テーブルが変更/更新された後でメールを送信
- 24. Android Studioのフォルダ構造が変更されました
- 25. インデントされた階層テーブル構造
- 26. 変更は、Entity Frameworkの変更を保存した後にデータベースの特定のテーブルにコミットされません
- 27. UIボタンの色が変更された後に変更する
- 28. ログインログアウトログを保持するためのテーブル構造は何ですか?
- 29. レンジキーで値を保持する構造
- 30. ドロップダウンオプションが変更されたときにテーブルを更新する
並べ替えは問題ではありません。この問題は、firetableStructureChanged()メソッド呼び出しでtableStrucutureが変更されると元のカスタムソートアルゴリズムが削除され、元のソートアルゴリズムを維持するか、テーブルの構造が変更されると自動的に自動的に再適用されるように求められます。 – Amit
質問にコードを入れてください。 – Priyamal