調整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中文網其他相關文章!