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