Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFXListView行着色_Listview_Javafx 2_Javafx - Fatal编程技术网

JavaFXListView行着色

JavaFXListView行着色,listview,javafx-2,javafx,Listview,Javafx 2,Javafx,我有一个带有单元工厂设置的LisView。单元格工厂根据每行的一些标志更改文本颜色黑色、红色、绿色、蓝色等 当我选择一行时,我希望将文本的颜色更改为始终为白色,而不考虑文本的原始颜色。这是因为某些文本颜色(如红色和蓝色)与默认的-fx选择栏颜色不匹配 我在列表视图中添加了以下CSS片段 .list-view:focused .list-cell:filled:focused:selected { -fx-background-color: -fx-focus-color, -fx-cell-f

我有一个带有单元工厂设置的LisView。单元格工厂根据每行的一些标志更改文本颜色黑色、红色、绿色、蓝色等

当我选择一行时,我希望将文本的颜色更改为始终为白色,而不考虑文本的原始颜色。这是因为某些文本颜色(如红色和蓝色)与默认的-fx选择栏颜色不匹配

我在列表视图中添加了以下CSS片段

.list-view:focused .list-cell:filled:focused:selected 
{
-fx-background-color: -fx-focus-color, -fx-cell-focus-inner-border, -fx-selection-bar;
-fx-background-insets: 0, 1, 2;
-fx-background: -fx-accent;
-fx-text-fill: white;
}
它工作正常,但当选择从一行更改为另一行时,它不会将文本返回到其原始颜色

有没有合适的方法


谢谢。

在CSS片段中,我看不到白色的定义。您是否在其他地方(例如在.root中)更改了-fx选择栏文本?某个版本的JavaFX中出现了一个错误。在这种情况下,解决方法是将未选中状态的字体CSS指定为黑色或您正在使用的任何字体。第一步可能是更新您的JDK,如果可能的话。@Uluk Biy-谢谢-它应该是白色的-我在上面的问题中做了更正。@Andy Till-我想我正在使用最新的JDK 7-我会验证。我认为使用CSS设置未选中状态的问题在于CSS不会记住行的前一种颜色。每个原始行可能是蓝色、红色、绿色等。当选中该行时,上面的CSS片段成功地将textFill变为白色,当未选中该行时,如何将其变回原始颜色?该错误与状态更改时未找到继承的CSS有关,恐怕我忘记了错误编号。