データベースからデータをロードし、テーブルの下部に要約行を生成するJTableがあります。ユーザーがテーブルを並べ替えられるようにしたいのですが、サマリー行を常にテーブルの一番下に残したいのです。
カスタムTableRowSorterを作成しようとしていますが、それを理解して、必要な処理を実行するのに問題があります。
誰もがこれを行う方法を知っていますか?ありがとう
データベースからデータをロードし、テーブルの下部に要約行を生成するJTableがあります。ユーザーがテーブルを並べ替えられるようにしたいのですが、サマリー行を常にテーブルの一番下に残したいのです。
カスタムTableRowSorterを作成しようとしていますが、それを理解して、必要な処理を実行するのに問題があります。
誰もがこれを行う方法を知っていますか?ありがとう
値が要約であるかどうかを保持するクラスが必要です。このようなもの
public class SummarizedValue {
public Integer value;
public boolean summarized;
public String toString() {
return null == value? "" : value.toString();
}
}
public class SummaryComparator implements Comparator<SummarizedValue> {
public int compare(SummarizedValue v1, SummarizedValue v2) {
if (v1.summarized) return 1;
if (v2.summarized) return -1;
return v1.value.compareTo(v2.value);
}
}
public class SummaryBackComparator implements Comparator<SummarizedValue> {
public int compare(SummarizedValue v1, SummarizedValue v2) {
if (v1.summarized) return 1;
if (v2.summarized) return -1;
return v2.value.compareTo(v1.value);
}
}
列にクラスのオブジェクトを表示する必要がSummarizedValue
あり、行ソーターはを返す必要がありますSummaryComparator
。また、を使用するには、RowSorterのトグル動作をオーバーライドする必要がありますSummaryBackComparator
。