- JavaFX 教程
- JavaFX - 首页
- JavaFX - 概述
- JavaFX 安装和架构
- JavaFX - 环境
- JavaFX - 使用 Netbeans 安装
- JavaFX - 使用 Eclipse 安装
- JavaFX - 使用 Visual Studio Code 安装
- JavaFX - 架构
- JavaFX - 应用程序
- JavaFX 2D 形状
- JavaFX - 2D 形状
- JavaFX - 绘制线条
- JavaFX - 绘制矩形
- JavaFX - 绘制圆角矩形
- JavaFX - 绘制圆形
- JavaFX - 绘制椭圆
- JavaFX - 绘制多边形
- JavaFX - 绘制折线
- JavaFX - 绘制三次贝塞尔曲线
- JavaFX - 绘制二次贝塞尔曲线
- JavaFX - 绘制弧形
- JavaFX - 绘制 SVGPath
- JavaFX 2D 对象的属性
- JavaFX - 描边类型属性
- JavaFX - 描边宽度属性
- JavaFX - 描边填充属性
- JavaFX - 描边属性
- JavaFX - 描边连接属性
- JavaFX - 描边斜接限制属性
- JavaFX - 描边端点属性
- JavaFX - 平滑属性
- JavaFX 路径对象
- JavaFX - 路径对象
- JavaFX - LineTo 路径对象
- JavaFX - HLineTo 路径对象
- JavaFX - VLineTo 路径对象
- JavaFX - QuadCurveTo 路径对象
- JavaFX - CubicCurveTo 路径对象
- JavaFX - ArcTo 路径对象
- JavaFX 颜色和纹理
- JavaFX - 颜色
- JavaFX - 线性渐变图案
- JavaFX - 径向渐变图案
- JavaFX 文本
- JavaFX - 文本
- JavaFX 效果
- JavaFX - 效果
- JavaFX - 颜色调整效果
- JavaFX - 颜色输入效果
- JavaFX - 图像输入效果
- JavaFX - 混合效果
- JavaFX - 辉光效果
- JavaFX - 发光效果
- JavaFX - 方框模糊效果
- JavaFX - 高斯模糊效果
- JavaFX - 运动模糊效果
- JavaFX - 反射效果
- JavaFX - 棕褐色效果
- JavaFX - 阴影效果
- JavaFX - 投影效果
- JavaFX - 内阴影效果
- JavaFX - 照明效果
- JavaFX - Light.Distant 效果
- JavaFX - Light.Spot 效果
- JavaFX - Point.Spot 效果
- JavaFX - 位移映射
- JavaFX - 透视变换
- JavaFX 动画
- JavaFX - 动画
- JavaFX - 旋转过渡
- JavaFX - 缩放过渡
- JavaFX - 平移过渡
- JavaFX - 淡入淡出过渡
- JavaFX - 填充过渡
- JavaFX - 描边过渡
- JavaFX - 顺序过渡
- JavaFX - 并行过渡
- JavaFX - 暂停过渡
- JavaFX - 路径过渡
- JavaFX 图像
- JavaFX - 图像
- JavaFX 3D 形状
- JavaFX - 3D 形状
- JavaFX - 创建立方体
- JavaFX - 创建圆柱体
- JavaFX - 创建球体
- 3D 对象的属性
- JavaFX - 剔除面属性
- JavaFX - 绘制模式属性
- JavaFX - 材质属性
- JavaFX 事件处理
- JavaFX - 事件处理
- JavaFX - 使用便捷方法
- JavaFX - 事件过滤器
- JavaFX - 事件处理程序
- JavaFX UI 控件
- JavaFX - UI 控件
- JavaFX - ListView
- JavaFX - Accordion
- JavaFX - ButtonBar
- JavaFX - ChoiceBox
- JavaFX - HTMLEditor
- JavaFX - MenuBar
- JavaFX - Pagination
- JavaFX - ProgressIndicator
- JavaFX - ScrollPane
- JavaFX - Separator
- JavaFX - Slider
- JavaFX - Spinner
- JavaFX - SplitPane
- JavaFX - TableView
- JavaFX - TabPane
- JavaFX - ToolBar
- JavaFX - TreeView
- JavaFX - Label
- JavaFX - CheckBox
- JavaFX - RadioButton
- JavaFX - TextField
- JavaFX - PasswordField
- JavaFX - FileChooser
- JavaFX - Hyperlink
- JavaFX - Tooltip
- JavaFX - Alert
- JavaFX - DatePicker
- JavaFX - TextArea
- JavaFX 图表
- JavaFX - 图表
- JavaFX - 创建饼图
- JavaFX - 创建折线图
- JavaFX - 创建面积图
- JavaFX - 创建柱状图
- JavaFX - 创建气泡图
- JavaFX - 创建散点图
- JavaFX - 创建堆叠面积图
- JavaFX - 创建堆叠柱状图
- JavaFX 布局窗格
- JavaFX - 布局窗格
- JavaFX - HBox 布局
- JavaFX - VBox 布局
- JavaFX - BorderPane 布局
- JavaFX - StackPane 布局
- JavaFX - TextFlow 布局
- JavaFX - AnchorPane 布局
- JavaFX - TilePane 布局
- JavaFX - GridPane 布局
- JavaFX - FlowPane 布局
- JavaFX CSS
- JavaFX - CSS
- JavaFX 中的媒体
- JavaFX - 处理媒体
- JavaFX - 播放视频
- JavaFX 有用资源
- JavaFX - 快速指南
- JavaFX - 有用资源
- JavaFX - 讨论
JavaFX - TilePane 布局
JavaFX 中的 TilePane 布局
在 JavaFX 中,TilePane 是一种布局组件,它以统一大小的磁贴形式排列其子节点,可以水平或垂直排列。我们可以控制行数或列数、磁贴之间的间隙、窗格的对齐方式以及每个磁贴的首选大小。名为 TilePane 的类属于 javafx.scene.layout 包,表示 TilePane。要创建 TilePane,我们可以使用以下任何构造函数:
TilePane() - 它构造一个新的水平 TilePane 布局。
TilePane(double hGap, double vGap) - 它创建一个新的水平 TilePane 布局,并指定 hGap 和 vGap。
TilePane(double hGap, double vGap, Node childNodes) - 构造一个水平 TilePane 布局,并指定 hGap、vGap 和节点。
TilePane(Orientation orientation) - 它创建一个新的 TilePane 布局,并指定方向。它可以是 HORIZONTAL 或 VERTICAL。
此类提供了 11 个属性,如下所示:
序号 | 属性及描述 |
---|---|
1 | alignment
此属性表示窗格的对齐方式,其值可以通过使用 setAlignment() 方法设置。 |
2 | hgap
此属性为 double 类型,表示一行中每个磁贴之间的水平间隙。 |
3 | vgap
此属性为 double 类型,表示一行中每个磁贴之间的垂直间隙。 |
4 | orientation
此属性表示一行中磁贴的方向。 |
5 | prefColumns
此属性为 double 类型,表示水平磁贴窗格的首选列数。 |
6 | prefRows
此属性为 double 类型,表示垂直磁贴窗格的首选行数。 |
7 | prefTileHeight
此属性为 double 类型,表示每个磁贴的首选高度。 |
8 | prefTileWidth
此属性为 double 类型,表示每个磁贴的首选宽度。 |
9 | tileHeight
此属性为 double 类型,表示每个磁贴的实际高度。 |
10 | tileWidth
此属性为 double 类型,表示每个磁贴的实际宽度。 |
11 | tileAlignment
此属性为 double 类型,表示每个子元素在其磁贴内的默认对齐方式。 |
示例
以下程序是磁贴窗格布局的示例。在此,我们创建一个包含 7 个按钮的磁贴窗格。默认情况下,其方向为水平。将此代码保存在名为 TilePaneExample.java 的文件中。
import javafx.application.Application; 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) { //Creating an array of Buttons 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") }; //Creating a Tile Pane TilePane tilePane = new TilePane(); //Setting the alignment for the Tile Pane tilePane.setTileAlignment(Pos.CENTER_LEFT); //Setting the preferred columns for the Tile Pane tilePane.setPrefRows(4); //Adding the array of buttons to the pane tilePane.getChildren().addAll(buttons); //Creating a scene object Scene scene = new Scene(tilePane, 400, 300); //Setting title to the Stage stage.setTitle("Tile 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 --module-path %PATH_TO_FX% --add-modules javafx.controls TilePaneExample.java java --module-path %PATH_TO_FX% --add-modules javafx.controls TilePaneExample
输出
执行上述程序后,将生成一个如下所示的 JavaFX 窗口。
将 TilePane 的方向设置为垂直
要在 JavaFX 中设置 TilePane 的方向,我们使用名为 setOrientation() 的内置方法,或者使用其接受方向作为参数值的带参数构造函数。以下 JavaFX 代码说明了如何将 TilePane 的方向设置为垂直。将此 JavaFX 代码保存在名为 JavafxTilepane 的文件中。
示例
import javafx.application.Application; 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 JavafxTilepane extends Application { @Override public void start(Stage stage) { // Creating a TilePane with vertical orientation TilePane tileP = new TilePane(Orientation.VERTICAL); // Setting the preferred number of rows to three tileP.setPrefRows(3); // Setting the hGap and vGap between tiles tileP.setHgap(10); tileP.setVgap(10); // Setting the alignment of the pane and the tiles tileP.setAlignment(Pos.CENTER); tileP.setTileAlignment(Pos.CENTER); // To add 10 buttons to the pane for (int i = 1; i <= 10; i++) { Button button = new Button("Button " + i); tileP.getChildren().add(button); } // Create a scene and stage Scene scene = new Scene(tileP, 400, 300); stage.setTitle("TilePane in JavaFX"); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } }
要从命令提示符编译并执行保存的 Java 文件,请使用以下命令:
javac --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxTilepane.java java --module-path %PATH_TO_FX% --add-modules javafx.controls JavafxTilepane
输出
执行上述代码后,将生成以下输出: