3

ソートが終了したに操作を実行したい と がありJTableます。私はネットを閲覧してきましたが、これまでのところあまり運がありません。TableRowSorter

最初は a だけでうまくいくと思ってRowSorterListenerいましたが、残念ながら、並べ替えが終了した後に操作を実行しません。

MouseListenerヘッダーに aを追加することJTableもできますが、ソリューションはそれほど洗練されたものではありません。

誰にもアイデアはありますか?

本当にありがとう!


編集(コメントから):TableModelを拡張するカスタム クラス内のメソッドに以下が追加されますAbstractTableModelJTableこのメソッドは、カスタムTableModelクラスで が設定または指定されるたびに呼び出されます。

sorter.addRowSorterListener(new RowSorterListener() {
    @Override public void sorterChanged(RowSorterEvent rowsorterevent) {
        rebuildMItems(); // The method which executes
    }
});
4

1 に答える 1

3

2 つの可能性:

  1. あなたには習慣があるようRowSorterです。メソッドの最後に操作への呼び出しを追加するだけで済みませんsort()か?

    言い換えれば、これを追加できますか:

    @Override
    public void sort() {
        super.sort();
        doSomethingAfterSortingIsDone();
    }
    

    あなたのソーターに?

  2. 現在のメソッド( a でRowSorterListener実行)は、操作を 2 回実行しSORT_ORDER_CHANGEDますSORTED。イベントの種類を確認して、正しいタイミングでのみ操作を実行できますか?

于 2009-06-12T15:53:58.023 に答える