首页  >  文章  >  Java  >  如何自动调整封闭容器内 JavaFX 画布的大小?

如何自动调整封闭容器内 JavaFX 画布的大小?

Barbara Streisand
Barbara Streisand原创
2024-10-30 08:13:27834浏览

How to Automatically Resize a JavaFX Canvas Within an Enclosing Container?

如何在封闭容器内自动调整画布大小

使用 JavaFX 的 Canvas API 和 AnimationTimer 制作动画背景时,自动调整画布大小的任务当封闭的 Stage 改变大小时,可能会遇到调整 Canvas 大小的情况。

Approach

在提供的示例代码中,使用了自定义类 CanvasPane。此类将 Canvas 的实例包装在 Pane 中。重写layoutChildren()方法以确保画布的尺寸与封闭窗格的尺寸相匹配。

调整大小约束

请注意,Canvas为其isRes定返回 false () 属性,表明其父级在布局期间无法调整其大小。但是,除了将可调整大小的子级调整为其首选大小之外,Pane 不会执行布局。因此,画布的初始大小由其宽度和高度参数决定。

与原始示例的主要区别

此方法与使用完全饱和颜色的不同之处在于采用一系列色调,随每个动画周期旋转。此外,相关示例演示了如何将控件放置在动画背景之上。

代码实现

<code class="java">public class Baubles extends Application {

    // ... code omitted ...

    private static class CanvasPane extends Pane {

        // ... code omitted ...

        @Override
        protected void layoutChildren() {
            // ... code omitted ...
            canvas.setWidth(w);
            canvas.setHeight(h);
        }
    }

    // ... code omitted ...
}</code>

此修改后的代码合并了 CanvasPane 类,自动调整 CanvasPane 类的大小父容器内的画布。当舞台大小调整时,画布也会相应调整其大小,确保无缝的背景动画。

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

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