我正在写一个程序,将一组项目放在一个列表视图中。然后,它检查是否在数据库中找到项目。如果在数据库中找不到该项目,我想在列表视图中更改该项目的背景。我正在为此程序使用JavaFX。
我该怎么做呢?
您可以将自定义单元格工厂用于ListView,以检查条件并将适当的CSS样式类应用于每个项目/单元格。
以下代码显示了如何对具有String类型项的Listview进行处理。
listView.setCellFactory(new Callback<ListView<String>, ListCell<String>>(){
@Override
public ListCell<String> call(ListView<String> p) {
ListCell<String> cell = new ListCell<String>(){
@Override
protected void updateItem(String t, boolean bln) {
super.updateItem(t, bln);
if (t != null ) {
setText( t);
if (item_is_not_available){
if (!getStyleClass().contains("mystyleclass") {
getStyleClass().add("mystyleclass");
}
} else {
getStyleClass().remove("mystyleclass");
}
} else {
setText("");
}
}
};
return cell;
}
});
在您的css文件中,可能的定义mystyleclass
如下所示(显示红色背景不可用的项目):
.mystyleclass{
-fx-background-color: #ff0000;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句