首頁  >  文章  >  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

在我們的主應用程式類別中,我們將Canvasvas包裝在CanvasPane 中:

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

使用CanvasPane,Canvas 將自動調整大小以填滿封閉的舞台。

其他注意事項

引用的 Stack Overflow 問題中接受的答案缺少此處所示的綁定。這種方法在 Canvas 與其父佈局之間提供了更無縫的整合。

以上是如何在 JavaFX 中自動調整畫布大小以填滿其父舞台?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn