如何为 javafx 线同时设置颜色、宽度和绘制虚线?

How to set color, width and draw dashed line simultaneously for javafx line?

我必须使用 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
        }
}

其中图表是折线图的实例。

Node.setStyle() 方法相互覆盖。我无法同时设置多种样式。最后的风格仍然存在,其他的被覆盖。即对于上面的序列,画了虚线。我在 java 代码中使用 css 样式。

有没有办法在不覆盖其他样式的情况下应用多种样式。

谢谢

Node.setStyle(),顾名思义,是 JavaFX Node.

样式属性的 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