Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
Java

Les conteneurs VBox et HBox en JavaFx

Un cours complet pour maîtriser Les conteneurs VBox et HBox en JavaFx.

0 chapitres 0 QCM Accès gratuit
  1. Objectifs

    • Comprendre les conteneurs VBox et HBox
    • Etre capable d'instancier et de configurer une VBox et une HBox dans une application JavaFX.
    • Les conteneurs VBox et HBox en JavaFx

  2. 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.
  3. VBox en JavaFX

    • La VBox dispose les nœuds enfants de manière verticale, de haut en bas.
      1. Propriétés
        • Cette méthode fournit diverses propriétés décrites dans le tableau ci-dessous.
        • PropriétéDescriptionMéthodes de pose
          AlignementCette 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)
          SpacingCette propriété consiste à définir un certain espacement entre les nœuds de la VBox.setSpacing(Double)
      2. Constructeurs
        • VBox() : crée une mise en page avec un espacement de 0
        • Vbox(Double spacing) : crée une mise en page avec une valeur d'espacement de type double
        • Vbox(Double spacing, Node? children): crée une mise en page avec l'espacement spécifié parmi les nœuds enfants spécifiés
        • Vbox(Node? children): crée une mise en page avec les nœuds spécifiés ayant un espacement de 0 entre eux
      3. Exemple de création d'une VBox :
          VBox vbox = new VBox();
          vbox.getChildren().addAll(button1, button2, button3);
        • Vous pouvez également définir l'espacement entre les nœuds enfants avec setSpacing(double spacing).
  4. HBox en JavaFX

    • L'HBox dispose les nœuds enfants de manière horizontale, de gauche à droite.
      1. Propriétés
        • Cette méthode fournit diverses propriétés décrites dans le tableau ci-dessous.
        • PropriétéDescriptionMéthodes de pose
          AlignementCela représente l'alignement des nœuds.setAlignement(Double)
          fillHeightIl 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)
          SpacingCela représente l'espace entre les nœuds de la HBox. Il est de type double.setSpacing(Double)
      2. Constructeurs
        • new HBox() : crée une disposition HBox avec un espacement de 0
        • new Hbox (Double spacing): crée une disposition HBox avec une valeur d'espacement
      3. Exemple de création d'une HBox :
          HBox hbox = new HBox();
          hbox.getChildren().addAll(button1, button2, button3);
        • Comme pour la VBox, vous pouvez définir l'espacement entre les nœuds enfants avec setSpacing(double spacing).
  5. 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
        VBox vbox = new VBox();
        vbox.setAlignment(Pos.CENTER);
        vbox.setPadding(new Insets(20));
        vbox.getChildren().addAll(button1, button2, button3);
    • 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 :
        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.