gpt4 book ai didi

css - JavaFX ListView - CellFactory 样式

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:08 25 4
gpt4 key购买 nike

我使用带有 CellFactory 的 ListView 为每个列表条目生成 Labels。当列表条目被选中时,无论我为list-view<设置什么CSS样式,Labels的文本都会变成白色list-cell

我如何控制 CellFactory 又名 ListCell 使用的 Labels 的颜色/样式行为?

items.addAll(Arrays.asList("Test 1","Test 2","Test 3"));
lstPreview.setItems(items);
lstPreview.setCellFactory(i -> new ListCell<String> () {
@Override
protected void updateItem (String item,boolean empty){
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
} else {
setGraphic(new Label(item));
}
}

});

最佳答案

当列表单元格被选中时,您可以将 css 应用于 label

对于选定的列表单元格,css 是

.list-cell:filled:selected {
...
}

对于一个选定的列表单元格,它有一个标签,我们可以这样写

.list-cell:filled:selected .label {
...
}

要为标签着色,可以使用-fx-text-fill

.list-cell:filled:selected .label {
-fx-text-fill: red;
}

如果内容是除Label之外的任何其他节点,您可以使用相同的方法。

输出如下

enter image description here

编辑

如果您只想覆盖默认的白色,您可以覆盖选定的.label

.list-cell:filled:selected .label {
-fx-text-fill: black ;
}

关于css - JavaFX ListView - CellFactory 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514462/

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