我已经使用JavaFX几个月了,关于CSS和图表有一个问题。我有一个堆叠条形图,我使用了几个系列 - 假设它们是A、B、C、D和E系列。当我生成图表时,并不是所有的系列都会显示在图表中,例如有些图表可能只有A、B和C,而其他图表可能只有B和E,还有一些图表可能包含全部5个系列。基本上,我根据正在处理的数据集以编程方式生成系列。
因此,在这种情况下,我希望每个图表上的系列颜色相同。当我生成这些内容时,如果我只有B和E,则反映这些颜色的css类名为:
.default-color0.chart-bar和.default-color1.chart-bar - 这里仅设置系列顺序的颜色 - 因此系列1将获得 "..color0.chart.." 定义,系列2 "..color1.chart.."等等。当我不知道哪个系列会排在第一位时,我需要在代码中动态设置这些。
我找到的唯一解决方案是将堆叠条形图的样式表设置为我预先编译的CSS文件。这很有效,以下是我在代码中如何实现的示例。
myStackedBarChart.getStylesheets().add("/myapp/chartSeriesColors.css");
唯一的问题是因为位置1中的系列未知,我必须创建每个可能系列的排列组合的CSS文件,我知道这是一个不好的解决方案。
我已经到处寻找在运行时动态设置系列CSS的方法,但没有找到 - 是否有办法做到这一点。基本上想将以下CSS类定义设置为:
.default-color0.chart-bar { -fx-bar-fill: #<a color I would set at runtime>; }
.default-color1.chart-bar { -fx-bar-fill: #<a color I would set at runtime>; }
任何帮助都将不胜感激。