我必须使用javafx折线图绘制多条线。由于一条线可以与其他线重叠。我想用虚线或不同厚度的线来表示每一行。
以下是我的代码段: -
for (XYChart.Series<Number, Number> s : chart.getData()) {
// Used for Line color
if (("Current Threshold").equals(s.getName())) {
s.getNode().setStyle(" -fx-stroke-width: 10; ");
s.getNode().setStyle("-fx-stroke: #00FF00; ");
s.getNode().setStyle("-fx-stroke-dash-array: 2 12 12 2; ");
}
else if(some condition)
{
// Some other condition to draw other lines
}
}
其中chart是LineChart的实例。
Node.setStyle()方法相互覆盖。我无法一起设置多种风格。最后一种风格仍然存在,其他风格被覆盖。即,对于上述序列,绘制虚线。我在java代码中使用css样式。
有没有办法应用多种风格,而不会覆盖其他风格。
由于
答案 0 :(得分:4)
Node.setStyle()
是JavaFX Node
的style属性的setter方法。
通过连续三次调用此方法,只有最后一次调用才会被覆盖。
因此,如果你想应用所有三种风格,你应该写:
node.setStyle("-fx-stroke-width: 10; -fx-stroke: #00FF00; -fx-stroke-dash-array: 2 12 12 2;");
甚至更好,使用CSS文件,请参阅此答案以获取进一步的参考:JavaFX Text styling for dynamic objects