java - 更改单个折线图系列颜色JavaFX

标签 java css javafx

我有一个窗口,其中包含三个不同的折线图。我正在尝试单独设置每个折线图系列的颜色。现在我有一个 css 文件,里面有这样的东西:

.default-color0.chart-series-line { -fx-stroke: blue }
.default-color1.chart-series-line { -fx-stroke: black }

这样做是在每个图表中设置系列的颜色。例如,如果我有一个包含两个系列的折线图,一个为蓝色,另一个为黑色。但是使用此设置,一个系列的所有三个图表都默认为蓝色。

我想要实现的是单独设置系列,以便我的第一个折线图有 someColor1,第二个折线图有 someColor2,等等。

我已经尝试了很多东西,并在整个互联网上进行了搜索,但我要么看到了不起作用的“猜测”,要么看到了通过 css 设置默认值的方法。有人能解决这个问题吗?

例如,我正在尝试使用 lineChart.setStyle("-fx-stroke: green"); 设置样式。

最佳答案

要在 CSS 文件中单独引用节点(而不是按类分组),您需要向节点添加 id:

LineChart<Number, Number> chart1 =  ... ;
LineChart<Number, Number> chart2 =  ... ;
LineChart<Number, Number> chart3 =  ... ;

chart1.setId("chart1");
chart2.setId("chart2");
chart3.setId("chart3");

显然,您可以选择更有意义的 id 来描述每个图表的内容。

然后在你的 CSS 中你可以做

#chart1 .chart-series-line { -fx-stroke: blue }
#chart2 .chart-series-line { -fx-stroke: black }
#chart3 .chart-series-line { -fx-stroke: green }

关于java - 更改单个折线图系列颜色JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43378004/

相关文章:

java - 在命令提示符下运行 jar 文件时显示错误 "JavaFX runtime components are missing, and are required to run this application"

java - 在我的例子中,只需要在我的 ListView 中显示一个对象(只有标题)

html - div 中垂直居中的垂直文本

java - 在异步 servlet 中用新请求替换旧请求

html - Flexbox 没有按预期包装元素

html - css:为什么 &lt;input&gt; 对父 div 的宽度有影响

java - Eclipse 似乎认为 CSS 文件是 Java 源代码

css - JavaFX 没有正确设置布局

java - Spring data couchbase 4.0.0 - 使用列表保存对象始终为空

java - 将不同元素居中对齐 - Android