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

时间:2017-04-12 19:24:33

标签: 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");来设置样式。

1 个答案:

答案 0 :(得分:2)

要在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 }