如何为 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
我必须使用 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
.
通过连续三次调用此方法,只有最后一次调用有效,因为之前的调用会被覆盖。
因此,如果您想应用所有三种样式,您应该这样写:
node.setStyle("-fx-stroke-width: 10; -fx-stroke: #00FF00; -fx-stroke-dash-array: 2 12 12 2;");
或者更好的是,使用 CSS 文件,请参阅此答案以供进一步参考:JavaFX Text styling for dynamic objects