JavaFX - 使用 Shape.union() 后维护形状边框

标签 java javafx shapes

有没有办法在使用 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);

预期输出:

Expected Output

实际输出:

Actual Output

无论如何,我可以将两者结合在一起,以便我可以将它们拖放到一起吗?

最佳答案

你的问题是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);

输出会是这样

enter image description here

有关shape.union、subtract、intersect的更多信息,请访问 here

关于JavaFX - 使用 Shape.union() 后维护形状边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47134318/

相关文章:

java - 在带有 OpenJDK 11 的 MacOS 上接受 Android SDK 许可证

java - 如何使用 javafx 执行 Timer 类,其中 javafx 对象发生变化

python - 基于 numpy/scipy 包的代码中的形状不一致

android - Android 可以处理不规则形状的事件吗?

html - 使用CSS绘制导航箭头形状

java - android应用程序中的堆空间

java - FIN ACK TCP 延迟

javascript - 如何在现有 Java Web 项目中添加 AngularJS 2

javafx - 如何获取鼠标在图表空间中的位置

java - 我正在使用 JavaFX,并且我的组合框不想从 sql 数据库填充