ホームページ  >  記事  >  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 とアニメーション背景のアニメーションタイマーを使用する場合、自動的に囲むステージのサイズ変更に応じて Canvas のサイズを変更する場合があります。

アプローチ

提供されるサンプル コードでは、カスタム クラス CanvasPane が使用されます。このクラスは、Pane 内で Canvas のインスタンスをラップします。キャンバスの寸法が周囲のペインの寸法と一致するように、layoutChildren() メソッドがオーバーライドされます。

サイズ変更制約

Canvas は isResizable に対して 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 クラスが組み込まれており、自動的にサイズが変更されます。親コンテナ内のキャンバス。ステージのサイズが変更されると、それに応じてキャンバスのサイズが調整され、シームレスな背景アニメーションが保証されます。

以上が囲んでいるコンテナ内で JavaFX キャンバスのサイズを自動的に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。