我必须使用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样式。
有什么方法可以应用多种样式,而不会覆盖其他样式。
谢谢
Node.setStyle()
顾名思义,它是JavaFX的style属性的setter方法Node
。
通过连续三次调用此方法,只有最后一次调用才会生效,因为先前的调用会被覆盖。
因此,如果要应用所有三种样式,则应编写:
node.setStyle("-fx-stroke-width: 10; -fx-stroke: #00FF00; -fx-stroke-dash-array: 2 12 12 2;");
甚至更好的是,使用CSS文件,请参见以下答案以获取更多参考:JavaFX动态对象的文本样式
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句