gpt4 book ai didi

java - 如何动态更改 JavaFX 中 ListView 中项目的背景

转载 作者:行者123 更新时间:2023-12-01 18:11:26 25 4
gpt4 key购买 nike

我正在编写一个程序,将一组项目放置在 ListView 中。然后它检查是否在数据库中找到了该项目。如果在数据库中找不到该项目,我想更改 ListView 中该项目的背景。我在这个程序中使用 JavaFX。

我该怎么做?

最佳答案

您可以为 ListView 使用自定义单元格工厂来检查条件并将适当的 css 样式类应用于每个项目/单元格。

以下代码演示了如何对具有字符串类型项目的 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;
}

关于java - 如何动态更改 JavaFX 中 ListView 中项目的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32696033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com