Heim > Java > javaLernprogramm > Wie ändere ich automatisch die Größe eines JavaFX-Canvas innerhalb eines umschließenden Containers?

Wie ändere ich automatisch die Größe eines JavaFX-Canvas innerhalb eines umschließenden Containers?

Barbara Streisand
Freigeben: 2024-10-30 08:13:27
Original
901 Leute haben es durchsucht

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

So ändern Sie die Größe einer Leinwand innerhalb eines umschließenden Containers automatisch

Bei der Arbeit mit der Canvas-API und dem AnimationTimer von JavaFX für animierte Hintergründe erfolgt die Aufgabe automatisch Es kann vorkommen, dass die Größe der Leinwand geändert wird, wenn sich die Größe der umschließenden Bühne ändert.

Ansatz

Im bereitgestellten Beispielcode wird eine benutzerdefinierte Klasse CanvasPane verwendet. Diese Klasse umschließt eine Instanz von Canvas in einem Pane. Die Methode „layoutChildren()“ wird überschrieben, um sicherzustellen, dass die Abmessungen der Leinwand mit denen des umschließenden Bereichs übereinstimmen.

Einschränkungen bei der Größenänderung

Beachten Sie, dass Canvas für isResizable „false“ zurückgibt ()-Eigenschaft, die angibt, dass die Größe während des Layouts durch das übergeordnete Element nicht geändert werden kann. Pane führt jedoch keine Layout-Vorgänge durch, die über die Größenänderung von untergeordneten Elementen auf ihre bevorzugten Größen hinausgehen. Daher wird die anfängliche Größe der Leinwand durch ihre Breiten- und Höhenargumente bestimmt.

Hauptunterschiede zum Originalbeispiel

Dieser Ansatz unterscheidet sich von der Verwendung vollständig gesättigter Farben durch die Verwendung von eine Reihe von Farbtönen, die sich mit jedem Animationszyklus drehen. Darüber hinaus veranschaulichen zugehörige Beispiele, wie Steuerelemente über dem animierten Hintergrund platziert werden.

Code-Implementierung

<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>
Nach dem Login kopieren

Dieser überarbeitete Code enthält die CanvasPane-Klasse und passt die Größe automatisch an Canvas im übergeordneten Container. Wenn die Größe der Bühne geändert wird, passt die Leinwand ihre Größe entsprechend an und sorgt so für eine nahtlose Hintergrundanimation.

Das obige ist der detaillierte Inhalt vonWie ändere ich automatisch die Größe eines JavaFX-Canvas innerhalb eines umschließenden Containers?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage