JavaFX、堆叠条形图和 CSS

标签 java css charts javafx-2

我已经使用 JavaFX 几个月了,并且有一个关于 CSS 和图表的问题。我有一个堆叠条形图,我有几个我使用的系列 - 假设它们是系列 A、B、C、D 和 E。当我生成图表时,并非所有系列都会在图表中,例如一些图表可能有 A、B 和 C,其他人只有 B 和 E,而另一个可能有全部 5 个。基本上,我是根据我正在使用的数据集以编程方式生成系列。

所以在这种情况下,我希望系列的颜色在每个图表上都相同。当我生成这些时,如果我只有 B 和 E,那么反射(reflect)这些颜色的 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>; }

如有任何帮助,我们将不胜感激。

最佳答案

图表在舞台上显示后:

for (Node n: chart.lookupAll(".default-color0.chart-bar")) n.setStyle("-fx-bar-fill: azure;");

关于JavaFX、堆叠条形图和 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11894383/

相关文章:

java - 自定义字体未应用

html - 我如何只针对 :hovered element and none of its parents in CSS?

reactjs - Reactjs 中的饼图

javascript - 如何使用 Id 销毁 Canvas 并将新 Canvas 添加到相同的 id

java - 如何专门为具有 m1(byte) 和 m1(int) 签名的类提供字节值

java - 这个java错误是什么意思?

Java Generics - 方法声明的区别

javascript - 在 textarea 中,在 webkit-transform 之后输入时自动滚动到底部不起作用

css - 为什么ie7缺少文字装饰: underline on mouse over?

r - 饼图和条形图在同一图上对齐