JavaFX - Volets de disposition HBox

Si nous utilisons HBox dans la mise en page de notre application, tous les nœuds sont définis sur une seule ligne horizontale.

La classe nommée HBox du forfait javafx.scene.layoutreprésente le volet HBox. Cette classe contient cinq propriétés à savoir -

  • alignment- Cette propriété représente l'alignement des nœuds dans les limites du HBox. Vous pouvez définir la valeur de cette propriété à l'aide de la méthode settersetAlignment().

  • fillHeight- Cette propriété est de type booléen et en définissant ceci sur true, les nœuds redimensionnables dans le HBox sont redimensionnés à la hauteur du HBox. Vous pouvez définir la valeur de cette propriété à l'aide de la méthode settersetFillHeight().

  • spacing- Cette propriété est de type double et représente l'espace entre les enfants du HBox. Vous pouvez définir la valeur de cette propriété à l'aide de la méthode settersetSpacing().

En plus de ceux-ci, cette classe fournit également quelques méthodes, qui sont -

  • setHgrow()- Définit la priorité de croissance horizontale pour l'enfant lorsqu'il est contenu par un HBox. Cette méthode accepte un nœud et une valeur de priorité.

  • setMargin()- En utilisant cette méthode, vous pouvez définir des marges pour le HBox. Cette méthode accepte un nœud et un objet de la classe Insets (Un ensemble de décalages intérieurs pour le 4 côté d'une zone rectangulaire).

Exemple

Le programme suivant est un exemple de la disposition HBox. Ici, nous insérons un champ de texte et deux boutons, jouer et arrêter. Ceci est fait avec un espacement de 10 et chacun ayant des marges avec des dimensions - (10, 10, 10, 10).

Enregistrez ce code dans un fichier avec le nom HBoxExample.java.

import javafx.application.Application; 
import javafx.collections.ObservableList; 
import javafx.geometry.Insets; 
import javafx.scene.Scene;
import javafx.scene.control.Button; 
import javafx.scene.control.TextField; 
import javafx.stage.Stage; 
import javafx.scene.layout.HBox;

public class HBoxExample extends Application {   
   @Override 
   public void start(Stage stage) {       
      //creating a text field   
      TextField textField = new TextField();       
      
      //Creating the play button 
      Button playButton = new Button("Play");       
      
      //Creating the stop button 
      Button stopButton = new Button("stop"); 
       
      //Instantiating the HBox class  
      HBox hbox = new HBox();    
      
      //Setting the space between the nodes of a HBox pane 
      hbox.setSpacing(10);    
      
      //Setting the margin to the nodes 
      hbox.setMargin(textField, new Insets(20, 20, 20, 20)); 
      hbox.setMargin(playButton, new Insets(20, 20, 20, 20)); 
      hbox.setMargin(stopButton, new Insets(20, 20, 20, 20));  
      
      //retrieving the observable list of the HBox 
      ObservableList list = hbox.getChildren();  
      
      //Adding all the nodes to the observable list (HBox) 
      list.addAll(textField, playButton, stopButton);       
      
      //Creating a scene object
      Scene scene = new Scene(hbox);  
      
      //Setting title to the Stage 
      stage.setTitle("Hbox Example"); 
         
      //Adding scene to the stage 
      stage.setScene(scene); 
         
      //Displaying the contents of the stage 
      stage.show(); 
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac HBoxExample.java 
java HBoxExample.java

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX comme indiqué ci-dessous.