首頁  >  文章  >  Java  >  如何自動調整封閉容器內 JavaFX 畫布的大小?

如何自動調整封閉容器內 JavaFX 畫布的大小?

Barbara Streisand
Barbara Streisand原創
2024-10-30 08:13:27829瀏覽

How to Automatically Resize a JavaFX Canvas Within an Enclosing Container?

如何在封閉容器內自動調整畫布大小

使用JavaFX 的Canvas API 和AnimationTimer 製作動畫背景時,自動調整畫布大小的任務當封閉的Stage 改變大小時,可能會遇到調整Canvas 大小的情況。

Approach

在提供的範例程式碼中,使用了自訂類別 CanvasPane。此類別將 Canvas 的實例包裝在 Pane 中。重寫layoutChildren()方法以確保畫布的尺寸與封閉窗格的尺寸相符。

調整大小約束

請注意,Canvas為其isRes定傳回 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 類,自動調整 CanvasPane 類別的大小父容器內的畫布。當舞台大小調整時,畫布也會相應調整其大小,確保無縫的背景動畫。

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

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