JavaFX TilePane

时间:2020-01-09 10:36:42  来源:igfitidea点击:

JavaFX TilePane是一个布局组件,将其子组件布置在大小相同的单元格中。 JavaFX TilePane布局组件由类javafx.scene.layout.TilePane表示。

创建一个TilePane

我们可以通过其构造函数创建JavaFXTilePane。这是一个JavaFXTilePane实例化示例:

TilePane tilePane = new TilePane();

将儿童添加到TilePane

我们可以通过获取子级集合来将子级添加到" TilePane"中,并向其添加要布局" TilePane"的组件。这是向" TilePane"中添加6个按钮的示例:

primaryStage.setTitle("TilePane Experiment");

Button button1 = new Button("Button 1");
Button button2 = new Button("Button Number 2");
Button button3 = new Button("Button No 3");
Button button4 = new Button("Button No 4");
Button button5 = new Button("Button 5");
Button button6 = new Button("Button Number 6");

TilePane tilePane = new TilePane();

tilePane.getChildren().add(button1);
tilePane.getChildren().add(button2);
tilePane.getChildren().add(button3);
tilePane.getChildren().add(button4);
tilePane.getChildren().add(button5);
tilePane.getChildren().add(button6);

tilePane.setTileAlignment(Pos.TOP_LEFT);

将TilePane添加到场景图

要使" TilePane"可见,必须将其添加到JavaFX场景图。为此,我们必须将TilePane实例添加到Scene对象,或者将TilePane添加到添加到Scene对象的布局组件中。

这是向场景图添加JavaFXTilePane的示例:

package com.Hyman.javafx.layouts;

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

public class TilePaneExperiments extends Application  {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("TilePane Experiment");

        Button button1 = new Button("Button 1");
        Button button2 = new Button("Button Number 2");
        Button button3 = new Button("Button No 3");
        Button button4 = new Button("Button No 4");
        Button button5 = new Button("Button 5");
        Button button6 = new Button("Button Number 6");

        TilePane tilePane = new TilePane();

        tilePane.getChildren().add(button1);
        tilePane.getChildren().add(button2);
        tilePane.getChildren().add(button3);
        tilePane.getChildren().add(button4);
        tilePane.getChildren().add(button5);
        tilePane.getChildren().add(button6);

        tilePane.setTileAlignment(Pos.TOP_LEFT);

        Scene scene = new Scene(tilePane, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

该应用程序产生的应用程序如下图所示。

水平和垂直间距

我们可以使用JavaFXTilePane中的setHGap()和setVGap()方法设置组件之间显示的水平和垂直间距。这是显示如何在TilePane中的组件之间设置水平和垂直间距的示例:

tilePane.setHgap(10);
tilePane.setVgap(10);

当添加到前面的示例中时,生成的应用程序将如下所示:

注意按钮之间的水平和垂直间隙。如果在" TilePane"上没有设置间隙,则按钮将被并排放置。