JavaFX - Volets de disposition VBox

Si nous utilisons VBox comme mise en page dans notre application, tous les nœuds sont définis dans une seule colonne verticale.

La classe nommée VBox du forfait javafx.scene.layoutreprésente le volet VBox. Cette classe contient cinq propriétés, qui sont -

  • alignment- Cette propriété représente l'alignement des nœuds à l'intérieur des limites de la VBox. 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 si elle est définie sur true; les nœuds redimensionnables dans la VBox sont redimensionnés à la hauteur de la VBox. 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 de la VBox. 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 les méthodes suivantes -

  • setVgrow()- Définit la priorité de croissance verticale pour l'enfant lorsqu'il est contenu par une VBox. 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 la VBox. Cette méthode accepte un nœud et un objet de la classe Insets (Un ensemble de décalages intérieurs pour les 4 côtés d'une zone rectangulaire)

Exemple

Le programme suivant est un exemple de VBoxdisposition. En cela, 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 VBoxExample.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.VBox; 
         
public class VBoxExample 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 VBox class  
      VBox vBox = new VBox();   
      
      //Setting the space between the nodes of a VBox pane 
      vBox.setSpacing(10);   
      
      //Setting the margin to the nodes 
      vBox.setMargin(textField, new Insets(20, 20, 20, 20));  
      vBox.setMargin(playButton, new Insets(20, 20, 20, 20)); 
      vBox.setMargin(stopButton, new Insets(20, 20, 20, 20));  
      
      //retrieving the observable list of the VBox 
      ObservableList list = vBox.getChildren(); 
      
      //Adding all the nodes to the observable list 
      list.addAll(textField, playButton, stopButton);       
      
      //Creating a scene object 
      Scene scene = new Scene(vBox);  
      
      //Setting title to the Stage 
      stage.setTitle("Vbox 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 VBoxExample.java 
java VBoxExample.java

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