Redimensionnement du canevas pour remplir le parent englobant dans JavaFX
La requête consiste à redimensionner automatiquement un élément Canvas pour l'adapter à sa scène parent englobante dans JavaFX. La clé pour y parvenir est de lier et de créer un volet personnalisé qui enveloppe le canevas.
Création d'un canevas
Pour créer un canevas redimensionnable, nous définissons un imbriqué statique classe, CanvasPane, qui étend Pane et remplace la méthode layoutChildren(). En remplaçant cette méthode, nous pouvons forcer les dimensions du canevas à correspondre à son volet englobant. Notez que Canvas ne peut pas être redimensionné par lui-même et que le parent ne peut pas le redimensionner automatiquement.
Voici la méthode layoutChildren() pour CanvasPane :
<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>
Utilisation de CanvasPane
Dans notre classe Application principale, nous enveloppons notre Canvas dans un CanvasPane :
<code class="java">CanvasPane canvasPane = new CanvasPane(WIDTH, HEIGHT); canvas = canvasPane.getCanvas();</code>
Avec CanvasPane, le Canvas se redimensionnera automatiquement pour remplir la scène englobante.
Considérations supplémentaires
La réponse acceptée dans la question référencée Stack Overflow n'a pas la liaison illustrée ici. Cette approche offre une intégration plus transparente entre le Canvas et sa mise en page parent.
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!