JavaFX - 布局窗格 VBox

  • 简述

    如果我们在应用程序中使用 VBox 作为布局,则所有节点都设置在单个垂直列中。
    类名为 VBox 包裹的 javafx.scene.layout代表 VBox 窗格。这个类包含五个属性,它们是 -
    • alignment− 该属性表示 VBox 边界内节点的对齐方式。您可以使用 setter 方法为此属性设置值setMoognment().
    • fillHeight- 此属性为布尔类型,并设置为真;VBox 中可调整大小的节点被调整到 VBox 的高度。您可以使用 setter 方法为此属性设置值setFillHeight().
    • spacing− 该属性为双精度型,表示 VBox 的子节点之间的空间。您可以使用 setter 方法为此属性设置值setSpacing().
    除了这些,这个类还提供以下方法 -
    • setVgrow()- 当被 VBox 包含时,设置孩子的垂直增长优先级。此方法接受一个节点和一个优先级值。
    • setMargin()− 使用此方法,您可以为 VBox 设置边距。此方法接受一个节点和一个 Insets 类的对象(矩形区域 4 边的一组内部偏移量)
  • 例子

    下面的程序是一个例子 VBox布局。在这里,我们插入了一个文本字段和两个按钮,播放和停止。这是用 10 的间距完成的,每个都有尺寸 - (10, 10, 10, 10) 的边距。
    将此代码保存在名称为的文件中 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); 
       } 
    }
    
    使用以下命令从命令提示符编译并执行保存的 java 文件。
    
    javac VBoxExample.java 
    java VBoxExample.java
    
    执行时,上述程序会生成一个 JavaFX 窗口,如下所示。
    视箱