我发现这样做的一种方法是简单地将null
传递给setFill(Color color)
,但这对我来说似乎是一个黑客解决方案。我想知道是否有更好/正确的方法来做到这一点?
CubicCurve cubicCurve = new CubicCurve(
50,
75,
80,
-25,
110,
175,
140,
75);
cubicCurve.setStrokeType(StrokeType.CENTERED);
cubicCurve.setStroke(Color.BLACK);
cubicCurve.setStrokeWidth(3);
cubicCurve.setFill(null); //this is in my opinion a hacker solution
这也引出了我的第二个问题,为什么任何形状的默认填充颜色都是白色?这有效率的原因吗?这有什么意义?
一种更优雅的编写方法是将填充指定为TRANSPARENT
以获得类似的效果。
cubicCurve.setFill(Color.TRANSPARENT);
就您的其他问题而言,默认填充为Black
,而不是White
。我不知道背后的原因。这就是JavaFX开发人员决定的。
在Shape.java
:中
public final Paint getFill() {
return fill == null ? Color.BLACK : fill.get();
}