たとえば、表示されるデータの関数で TableCell のスタイルクラスを変更する必要があります。セルの値が 2 つの連続する行で同じ場合、セルを強調表示する必要があります (つまり、背景が赤)。これは、テーブルへのデータの追加と任意の列による並べ替えの両方で機能する必要があります。
そのために、並べ替え時に、リスナーを追加しtableview.getSortOrder()
、そのonChange
メソッドに、上記で説明したことを行うロジックを追加しました。例:
public void onChanged(ListChangeListener.Change<? extends TableColumn> change) {
if (change.getList().size() > 0) {
Platform.runLater(new Runnable() {
@Override
public void run() {
/* set some css on tableview cells */
}
});
}
}
問題は、そうすると css の変更がテーブルの次の更新時にすぐに適用されないことです。私の容疑者は内部でこれを行っていPlatform.runLater
ますが、スタイルを変更する前に、データを本来の順序で並べ替える必要があります。
私は何か悪いことをしましたか?私が説明したことを行うためのより良い方法はありますか?