ホームページ >Java >&#&チュートリアル >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 サイトの他の関連記事を参照してください。