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

时间:2015-02-16 09:38:03

标签: javafx javafx-2 javafx-8

我必须使用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样式。

有没有办法应用多种风格,而不会覆盖其他风格。

由于

1 个答案:

答案 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