Les conteneurs VBox et HBox en JavaFx
Les conteneurs VBox et HBox en JavaFx
-
Objectifs
- Comprendre les conteneurs
VBox
etHBox
- Etre capable d’instancier et de configurer une VBox et une HBox dans une application JavaFX.
-
Introduction :
- VBox et HBox sont deux conteneurs de base de JavaFX qui permettent de disposer des nœuds (comme des boutons, des TextField, etc.) de manière verticale ou horizontale.
-
VBox en JavaFX
- La VBox dispose les nœuds enfants de manière verticale, de haut en bas.
-
Propriétés
- Cette méthode fournit diverses propriétés décrites dans le tableau ci-dessous.
-
Constructeurs
VBox()
: crée une mise en page avec un espacement de 0Vbox(Double spacing)
: crée une mise en page avec une valeur d’espacement de type doubleVbox(Double spacing, Node? children)
: crée une mise en page avec l’espacement spécifié parmi les nœuds enfants spécifiésVbox(Node? children)
: crée une mise en page avec les nœuds spécifiés ayant un espacement de 0 entre eux-
Exemple de création d’une VBox :
- Vous pouvez également définir l’espacement entre les nœuds enfants avec setSpacing(double spacing).
-
HBox en JavaFX
- L’HBox dispose les nœuds enfants de manière horizontale, de gauche à droite.
-
Propriétés
- Cette méthode fournit diverses propriétés décrites dans le tableau ci-dessous.
-
Constructeurs
new HBox()
:crée une disposition HBox avec un espacement de 0new Hbox (Double spacing)
: crée une disposition HBox avec une valeur d’espacement-
Exemple de création d’une HBox :
- Comme pour la VBox, vous pouvez définir l’espacement entre les nœuds enfants avec setSpacing(double spacing).
-
Alignment et Padding
- Vous pouvez également définir l’alignement des nœuds enfants dans le conteneur avec les méthodes suivantes :
setAlignment(Pos alignment)
: définit l’alignement des nœuds enfants (par exemple, Pos.CENTER, Pos.TOP_LEFT, etc.)setPadding(Insets padding)
: définit les marges autour du conteneur- Ajout de contraintes de positionnement
- Vous pouvez également ajouter des contraintes de positionnement aux nœuds enfants avec les méthodes suivantes :
- setMargin(Node node, Insets margin) : définit les marges autour d’un nœud enfant
- setHgrow(Node node, Priority priority) : définit la priorité de croissance horizontale d’un nœud enfant
- setVgrow(Node node, Priority priority) : définit la priorité de croissance verticale d’un nœud enfant
- Exemple :
Propriété | Description | Méthodes de pose |
---|---|---|
Alignement | Cette propriété concerne l’alignement des nœuds. | setAlignement(Double) |
FillWidth | Cette propriété est de type booléen. La largeur des nœuds redimensionnables peut être rendue égale à la largeur de la VBox en définissant cette propriété sur true. | setFillWidth(boolean) |
Spacing | Cette propriété consiste à définir un certain espacement entre les nœuds de la VBox. | setSpacing(Double) |
VBox vbox = new VBox();
vbox.getChildren().addAll(button1, button2, button3);
Propriété | Description | Méthodes de pose |
---|---|---|
Alignement | Cela représente l’alignement des nœuds. | setAlignement(Double) |
fillHeight | Il s’agit d’une propriété booléenne. Si vous définissez cette propriété sur true, la hauteur des nœuds deviendra égale à la hauteur de la HBox. | setFillHeight(Double) |
Spacing | Cela représente l’espace entre les nœuds de la HBox. Il est de type double. | setSpacing(Double) |
HBox hbox = new HBox();
hbox.getChildren().addAll(button1, button2, button3);
VBox vbox = new VBox();
vbox.setAlignment(Pos.CENTER);
vbox.setPadding(new Insets(20));
vbox.getChildren().addAll(button1, button2, button3);
HBox hbox = new HBox();
hbox.setSpacing(10);
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
TextField textField = new TextField();
HBox.setHgrow(textField, Priority.ALWAYS);
hbox.getChildren().addAll(button1, textField, button2);
Dans cet exemple, le TextField prend tout l’espace disponible horizontalement, tandis que les boutons gardent leur taille par défaut.