ホームページ >Java >&#&チュートリアル >JavaFXでキャンバスのサイズを自動的に変更して親ステージを満たすにはどうすればよいですか?

JavaFXでキャンバスのサイズを自動的に変更して親ステージを満たすにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 12:54:03902ブラウズ

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

JavaFX の外側の親を埋めるように Canvas のサイズを変更する

クエリは、JavaFX の外側の親 Stage に合わせて Canvas 要素のサイズを自動的に変更することを中心に展開します。これを達成する鍵は、Canvas をラップするカスタム Pane をバインドして作成することです。

CanvasPane の作成

サイズ変更可能な Canvas を作成するには、静的にネストされた を定義します。 CanvasPane クラス。Pane を拡張し、layoutChildren() メソッドをオーバーライドします。このメソッドをオーバーライドすることで、キャンバスの寸法を強制的にその周囲のペインと一致させることができます。 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 の使用

メインの Application クラスでは、CanvasPane で Canvas をラップします。

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

CanvasPane を使用すると、Canvas は周囲の Stage を満たすように自動的にサイズ変更されます。

追加の考慮事項

参照されたスタック オーバーフローの質問で受け入れられた回答には、ここで説明されているバインディングがありません。このアプローチにより、キャンバスとその親レイアウトの間でよりシームレスな統合が実現します。

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

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