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



我发现这样做的一种方法是简单地将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();
}    

最新更新