首页  >  文章  >  Java  >  如何在 JavaFX 中自动调整画布大小以填充其父舞台?

如何在 JavaFX 中自动调整画布大小以填充其父舞台?

Linda Hamilton
Linda Hamilton原创
2024-10-26 12:54:03814浏览

How to Automatically Resize a Canvas to Fill Its Parent Stage in JavaFX?

调整 Canvas 大小以填充 JavaFX 中的封闭父级

查询围绕自动调整 Canvas 元素大小以适合 JavaFX 中其封闭父级 Stage 进行。实现这一点的关键是通过绑定和创建一个包裹 Canvas 的自定义 Pane。

创建 CanvasPane

要创建一个可调整大小的 Canvas,我们定义一个静态嵌套CanvasPane 类,它扩展了 Pane 并重写了layoutChildren() 方法。通过重写此方法,我们可以强制 Canvas 尺寸与其封闭的 Pane 相匹配。请注意,Canvas 本身无法调整大小,父级也无法自动调整其大小。

这是 CanvasPane 的 layoutChildren() 方法:

<code class="java">@Override
protected void layoutChildren() {
    super.layoutChildren();
    final double x = snappedLeftInset();
    final double y = snappedTopInset();
    final double w = snapSize(getWidth()) - x - snappedRightInset();
    final double h = snapSize(getHeight()) - y - snappedBottomInset();
    canvas.setLayoutX(x);
    canvas.setLayoutY(y);
    canvas.setWidth(w);
    canvas.setHeight(h);
}</code>

使用 CanvasPane

在我们的主应用程序类中,我们将 Canvas 包装在 CanvasPane 中:

<code class="java">CanvasPane canvasPane = new CanvasPane(WIDTH, HEIGHT);
canvas = canvasPane.getCanvas();</code>

使用 CanvasPane,Canvas 将自动调整大小以填充封闭的舞台。

其他注意事项

引用的 Stack Overflow 问题中接受的答案缺少此处所示的绑定。这种方法在 Canvas 与其父布局之间提供了更加无缝的集成。

以上是如何在 JavaFX 中自动调整画布大小以填充其父舞台?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn