Maison  >  Article  >  Java  >  Comment redimensionner automatiquement un canevas JavaFX dans un conteneur englobant ?

Comment redimensionner automatiquement un canevas JavaFX dans un conteneur englobant ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 08:13:27829parcourir

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

Comment redimensionner automatiquement un canevas dans un conteneur englobant

Lorsque vous travaillez avec l'API Canvas de JavaFX et AnimationTimer pour les arrière-plans animés, la tâche de automatiquement il est possible de redimensionner le canevas à mesure que la taille de la scène englobante change.

Approche

Dans l'exemple de code fourni, une classe personnalisée CanvasPane est utilisée. Cette classe encapsule une instance de Canvas dans un volet. La méthode layoutChildren() est remplacée pour garantir que les dimensions du canevas correspondent à celles du volet englobant.

Contraintes de redimensionnement

Notez que Canvas renvoie false pour son isResizing (), indiquant qu'elle ne peut pas être redimensionnée lors de la mise en page par son parent. Cependant, Pane n'effectue pas de mise en page au-delà du redimensionnement des enfants redimensionnables à leurs tailles préférées. Par conséquent, la taille initiale de la toile est déterminée par ses arguments de largeur et de hauteur.

Différences clés par rapport à l'exemple original

Cette approche diffère de l'utilisation de couleurs entièrement saturées en employant une gamme de teintes de couleurs, qui tournent à chaque cycle d'animation. De plus, des exemples associés montrent comment placer des contrôles au-dessus de l'arrière-plan animé.

Implémentation du code

<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>

Ce code révisé intègre la classe CanvasPane, redimensionnant automatiquement le Canvas dans le conteneur parent. Au fur et à mesure que la scène est redimensionnée, le canevas ajustera sa taille en conséquence, garantissant une animation d'arrière-plan transparente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn