JavaFX - 布局 TilePane

如果我们在应用程序中使用此窗格,则添加到它的所有节点都将以统一大小的图块形式排列。包 javafx.scene.layout 中名为 tilePane 的类表示 TilePane。

此类提供 11 个属性,即 −

  • alignment − 此属性表示窗格的对齐方式,您可以使用 setAlignment() 方法设置此属性的值。

  • hgap − 此属性为 double 类型,表示一行中每个图块之间的水平间隙。

  • vgap −此属性为双精度类型,表示一行中每个图块之间的垂直间隙。

  • orientation − 此属性表示一行中图块的方向。

  • prefColumns − 此属性为双精度类型,表示水平图块窗格的首选列数。

  • prefRows − 此属性为双精度类型,表示垂直图块窗格的首选行数。

  • prefTileHeight − 此属性为双精度类型,表示每个图块的首选高度。

  • prefTileWidth − 此属性为双精度类型,表示每个图块的首选宽度。

  • tileHeight −此属性为双精度类型,表示每个图块的实际高度。

  • tileWidth − 此属性为双精度类型,表示每个图块的实际宽度。

  • tileAlignment − 此属性为双精度类型,表示其图块内每个子项的默认对齐方式。

示例

以下程序是图块窗格布局的示例。在此程序中,我们创建一个包含 7 个按钮的图块窗格。

将此代码保存在名为 TilePaneExample.java 的文件中。

import javafx.application.Application; 
import javafx.collections.ObservableList; 
import javafx.geometry.Orientation; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.TilePane; 
import javafx.stage.Stage;

public class TilePaneExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //创建按钮数组
        Button[] buttons = new Button[] {
        new Button("SunDay"),
        new Button("MonDay"),
        new Button("TuesDay"),
        new Button("WednesDay"),
        new Button("ThursDay"),
        new Button("FriDay"),
        new Button("SaturDay")
        };
        //创建 Tile 窗格
        TilePane tilePane = new TilePane();
        
        //设置 Tile 窗格的方向
        tilePane.setOrientation(Orientation.HORIZONTAL);
        
        //设置 Tile 窗格的对齐方式
        tilePane.setTileAlignment(Pos.CENTER_LEFT);
        
        //设置 Tile 窗格的首选列
        tilePane.setPrefRows(4);
        
        //检索 Tile Pane 的可观察列表
        ObservableList list = tilePane.getChildren();
        
        //将按钮数组添加到窗格
        list.addAll(buttons);
        
        //创建场景对象
        Scene scene = new Scene(tilePane);
        
        //将标题设置为舞台(Stage)
        stage.setTitle("Tile Pane 示例");
        
        //将场景添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)的内容
        stage.show();
   }
   public static void main(String args[]){ 
      launch(args); 
   } 
}

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac TilePaneExample.java 
java TilePaneExample

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

TilePane

javafx_layout_panes.html