2017-10-05 2 views
0

Je suis un peu nouveau dans Javafx et je n'ai jamais fait que de simples projets avec lui. Je travaille actuellement sur un projet plus complexe et je suis tombé sur un problème avec ScrollPanes. J'ai du mal à trouver comment rendre le ScrollPane redimensionner en hauteur chaque fois que je redimensionne l'application. Voici ma structure:Javafx Scrollpane Contraintes à l'intérieur d'un autre volet

Structure

Le volet indiqué par la flèche orange fonctionne très bien, je peux ajouter des contraintes comme indiqué ici:

Constraints

Cependant, je n'ont pas les options de contrainte sur le ScrollPane ou l'AnchorPane à l'intérieur du ScrollPane, ce qui entraîne le redimensionnement de l'application:

enter image description here

Si je supprime le volet parent et que je mets juste le ScrollPane à sa place, je peux ajouter les contraintes, mais si je le faisais, je ne serais pas capable de concevoir correctement l'application comme je l'ai maintenant. En bref, je suis simplement curieux de savoir s'il existe une autre méthode que je peux utiliser ou si je n'utilise que de mauvaises pratiques, auquel cas tout conseil est apprécié.

+0

AnchorPane n'est presque jamais un bon choix, car il encourage l'équivalent de «mises en page absolues». La classe Pane ne devrait certainement pas être utilisée. Si vous voulez qu'un seul composant remplisse tout l'espace disponible, placez-le au centre d'un panneau de bordure. Je recommande de lire (au moins) la documentation au niveau de la classe de BorderPane, GridPane, FlowPane, TilePane, StackPane, HBox et VBox. Rappelez-vous que les dispositions d'imbrication sont normales et attendues. – VGR

Répondre

0

Pane redimensionne simplement les enfants à la taille préférée et conserve la position. Cela signifie qu'aucun redimensionnement n'est appliqué. En outre, il n'offre aucune autre contrainte de mise en page.

Vous pouvez simplement remplacer le volet parent par un AnchorPane et les ancrages redeviennent disponibles.

Toutefois, un AnchorPane (base) contenant que beaucoup Pane s, probablement tous avec différentes contraintes AnchorPane, indique que la scène devrait probablement être restructuré un peu. Par exemple. GridPane, VBox, HBox ou une combinaison de ceux-ci pourrait vous aider à atteindre le résultat souhaité d'une manière plus simple.

Voir Using Built-in Layout Panes pour une description des dispositions disponibles et des exemples d'utilisation.