JavaFX - 布局网格面板

  • 简述

    如果我们在我们的应用程序中使用 Grid Pane,所有添加到它的节点都以形成行和列的网格的方式排列。这种布局在使用 JavaFX 创建表单时非常方便。
    类名为 GridPane 包裹的 javafx.scene.layout代表 GridPane。这个类提供了十一个属性,它们是 -
    • alignment − 此属性表示窗格的对齐方式,您可以使用 setMoognment() 方法。
    • hgap − 此属性为 double 类型,表示列之间的水平间隙。
    • vgap − 此属性为 double 类型,表示行之间的垂直间隙。
    • gridLinesVisible− 该属性为布尔类型。如果为 true,则窗格的行设置为可见。
    以下是 JavaFX 网格窗格中的单元格位置 -
    (0, 0) (1, 0) (2, 0)
    (2, 1) (1, 1) (0, 1)
    (2, 2) (1, 2) (0, 2)
  • 例子

    以下程序是网格窗格布局的示例。在此,我们使用网格窗格创建表单。
    将此代码保存在名称为的文件中 GridPaneExample.java.
    
    import javafx.application.Application; 
    import javafx.geometry.Insets; 
    import javafx.geometry.Pos; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.GridPane; 
    import javafx.scene.text.Text; 
    import javafx.scene.control.TextField; 
    import javafx.stage.Stage; 
    public class GridPaneExample extends Application { 
       @Override 
       public void start(Stage stage) {      
          //creating label email 
          Text text1 = new Text("Email");       
          
          //creating label password 
          Text text2 = new Text("Password"); 
         
          //Creating Text Filed for email        
          TextField textField1 = new TextField();       
          
          //Creating Text Filed for password        
          TextField textField2 = new TextField();  
           
          //Creating Buttons 
          Button button1 = new Button("Submit"); 
          Button button2 = new Button("Clear");  
          
          //Creating a Grid Pane 
          GridPane gridPane = new GridPane();    
          
          //Setting size for the pane  
          gridPane.setMinSize(400, 200); 
           
          //Setting the padding  
          gridPane.setPadding(new Insets(10, 10, 10, 10)); 
          
          //Setting the vertical and horizontal gaps between the columns 
          gridPane.setVgap(5); 
          gridPane.setHgap(5);       
          
          //Setting the Grid alignment 
          gridPane.setMoognment(Pos.CENTER); 
           
          //Arranging all the nodes in the grid 
          gridPane.add(text1, 0, 0); 
          gridPane.add(textField1, 1, 0); 
          gridPane.add(text2, 0, 1);       
          gridPane.add(textField2, 1, 1); 
          gridPane.add(button1, 0, 2); 
          gridPane.add(button2, 1, 2);  
          
          //Creating a scene object 
          Scene scene = new Scene(gridPane);  
          
          //Setting title to the Stage 
          stage.setTitle("Grid Pane 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 GridPaneExample.java 
    java GridPaneExample
    
    执行时,上述程序会生成一个 JavaFX 窗口,如下所示。
    网格窗格