gpt4 book ai didi

css - JavaFX TableView 更改选定的单元格颜色

转载 作者:行者123 更新时间:2023-12-02 15:26:59 25 4
gpt4 key购买 nike

我有一个 JavaFX TableView 和一个 ListView,它们都使用自定义单元工厂。特别是我重写了 updateItem 方法,以便根据单元格值绑定(bind)特定的 CSS 类。

这是我的 CSS 文件的一部分:

.tissueCell {
-fx-text-fill: #F5AD11;
}

.tissueCell:selected {
-fx-background-color: #F5AD11;
-fx-text-fill: white;
}

.significantDataCell {
-fx-background-color: yellow;
-fx-text-fill: black;
}

.significantDataCell:selected {
-fx-background-color: white;
-fx-text-fill: black;
}

对于 ListView,一切都完美无缺:文本以正确的颜色显示,当单元格被选中时,文本变为白色,背景以正确的颜色填充。

我遇到了 TableView 的问题。取消选中时,单元格中的文本将以所选颜色显示,但选中单元格时,背景将填充所选表格单元格背景的默认 JavaFX 颜色,文本颜色保持为#F5AD11(不会变为白色)。

使用 .significantDataCell 类的 TableCells 也会发生同样的情况。单元格正确显示为黄色背景和黑色文本,但选中时没有任何变化,这次没有事件背景。

有什么想法吗?我做了很多研究,但找不到任何可行的解决方案。

最佳答案

默认情况下,TableView 不允许选择单个单元格,但允许选择行。因此选择器 .table-cell:selected 从不匹配默认选择模式下的任何单元格。在这种情况下,您需要

.table-row-cell:selected .table-cell {
/* style definitions */
}

或者在你的场景中

.table-row-cell:selected .tissue-cell {
-fx-background-color: #F5AD11;
-fx-text-fill: white;
}

等等

如果您允许表格使用单元格选择,通过调用

myTableView.setCellSelectionEnabled(true);

然后单个单元格在鼠标点击(等)时被选中,因此您的原始 CSS 将起作用。

关于css - JavaFX TableView 更改选定的单元格颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29857596/

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