javafx布局之gridpane

刚刚测试了gridpane这个布局管理器,因为它和xaml的grid布局控件很相似,xaml布局中我用的最多的就是grid了,所以首先搞懂javafx的gridpane

主要关注的就是girdpane的自动拓展尺寸的功能,我需要的是一个可以自动扩展尺寸的gridpane,就像grid那样,但是默认情况下,gridpane并不支持拓展空间,不信可以试试

API上查找了一下,发现了这样一段话

By default the gridpane will resize rows/columns to their preferred sizes (either computed from content or fixed), even if the gridpane is resized larger than its preferred size. If an application needs a particular row or column to grow if there is extra space, it may set its grow priority on the RowConstraints or ColumnConstraints object.

翻译过来

默认gridpane将调整行/列首选大小(根据内容计算或固定尺寸),即使gridpane大小大于它的首选大小(它也不会自动调整大小,我加上的)。如果一个应用程序需要一个特定的行或列成长如果有多余的空间,它可以设置优先增长RowConstraints或ColumnConstraints对象。例如:

 

GridPane gridpane = new GridPane();

ColumnConstraints column1 = new ColumnConstraints(100,100,Double.MAX_VALUE);

column1.setHgrow(Priority.ALWAYS);

好吧,说到这里应该很到位了,但是在javafx的fxml中如何设定呢?下面就是解决方法,其实很简单

<GridPane vgap="1" hgap="1"     id="AnchorPane" prefHeight="2000" prefWidth="500" styleClass="mainFxmlClass" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Frame2XML.Frame2Controller">
    <stylesheets>
        <URL value="@frame2.css"/>
    </stylesheets>
       
        <TableView GridPane.hgrow="ALWAYS" >
            <columns>
                <TableColumn text="路径" />
                <TableColumn text="路径" />
                <TableColumn text="路径" />
            </columns>
        </TableView>
</GridPane>

这样,tableview就可以随着界面尺寸变化而变化了,怎么样,是不是很强大。

GridPane布局JavaFX中一种常用的布局方式,它允许我们将组件以网格的形式排列。在GridPane布局中,我们可以将组件按照行和列的方式进行布局。 使用GridPane布局,我们首先需要创建一个GridPane对象,然后可以使用add()方法将组件添加到网格中。我们可以指定每个组件在网格中的行和列索引,以及其所占的行数和列数。 以下是一个示例代码,演示了如何使用GridPane布局: ```java // 创建GridPane对象 GridPane gridPane = new GridPane(); // 创建组件 Button button1 = new Button("Button 1"); Button button2 = new Button("Button 2"); Button button3 = new Button("Button 3"); Button button4 = new Button("Button 4"); // 将组件添加到网格中 gridPane.add(button1, 0, 0); // 在第一行第一列 gridPane.add(button2, 1, 0); // 在第一行第二列 gridPane.add(button3, 0, 1, 2, 1); // 在第二行第一列,占据两列 gridPane.add(button4, 2, 0); // 在第一行第三列 // 设置网格布局的一些属性 gridPane.setHgap(10); // 设置水平间距 gridPane.setVgap(10); // 设置垂直间距 gridPane.setAlignment(Pos.CENTER); // 设置组件在网格中的对齐方式 // 创建场景并将GridPane添加到场景中 Scene scene = new Scene(gridPane, 400, 300); // 显示场景 primaryStage.setScene(scene); primaryStage.show(); ``` 在上面的示例中,我们创建了一个GridPane对象,并将四个按钮添加到网格中。我们使用add()方法指定了每个按钮所在的行和列索引,以及它们所占的行数和列数。我们还可以使用setHgap()和setVgap()方法设置网格的水平和垂直间距,并使用setAlignment()方法设置组件在网格中的对齐方式。 希望这个示例能够帮助您了解如何使用GridPane布局布局JavaFX应用程序中的组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值