0
私はいくつかのレコードを持つTableViewを持っていて、プロパティに応じてセルの背景色を設定したいとします(たとえば、ID == 5の場合は色を設定します)。JavaFX TableView CellFactory
基本的には動作します。
public class CustomCell extends TableCell<Person, String> {
@Override
protected void updateItem(String item, boolean empty){
super.updateItem(item, empty);
if (item != null && !empty){
setText(item);
if (getTableRow() != null && getTableRow().getItem() != null){
Person p = (Person) getTableRow().getItem();
if (p.getId() == 5){
setStyle("-fx-background-color: #CBDBD7;");
}
}
}else{
setText(null);
}
}
しかし、私は上にスクロールし、数回上下を開始したとき、 異なる細胞が同様に背景色を取得します。 これは私が望む動作ではありません。
Wrong cells with background color
私はOpenJDKのとMacOSの10.13.1/Javaの1.8.0_151 とDebianでこれをテストしました。
https://github.com/glueckandi/test_fx.git
私が間違って何をしているのですか?
あなたの基準に一致しない他の項目がセルに配置されているときには、背景色を削除していません。 – fabian