JavaFX - 给像 Rectangle 这样的 Shape 子类对象没有颜色的正确方法是什么

JavaFX - What is the correct way to give a Shape subclass object like Rectangle no Color

我发现一种方法是简单地将 null 传递给 setFill(Color color),但这对我来说似乎是一种黑客解决方案。我想知道是否有 better/proper 方法可以做到这一点?

    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();
}