使用union函数后,有没有办法在JavaFX Shape上保持边框/笔划?例如,这是我的代码:
Shape rect = new Rectangle(150, 150);
rect.setFill(Color.WHITE);
rect.setStroke(Color.BLACK);
rect.setStrokeWidth(4);
Line line = new Line(0, 40, 150, 40);
line.setStrokeWidth(2);
Shape combined = Shape.union(line, rect);
combined.setFill(Color.WHITE);
combined.setStroke(Color.BLACK);
pane.getChildren().add(combined);
预期输出:
实际输出:
无论如何,我可以将两者结合在一起,以便将它们拖放到一起吗?
答案 0 :(得分:1)
您的问题是combined.setFill(Color.WHITE);
,因为它清除了之前的所有shape
更改。
尝试这样的事情
Line line = new Line(0, 40, 150, 40);
Shape rect = new Rectangle(150, 150);
Shape combined = Shape.subtract(rect,line);
combined.setFill(Color.WHITE);
combined.setStroke(Color.BLACK);
rect.setFill(Color.WHITE);
rect.setStroke(Color.BLACK);
rect.setStrokeWidth(4);
line.setStrokeWidth(2);
line.setStroke(Color.BLACK);
line.setFill(Color.BLACK);
pane.getChildren().add(combined);
out put就像是这个
有关shape.union,subtract,intersect
go here