如何在JavaFX GridPane的列之间设置填充?

时间:2013-12-08 13:36:27

标签: java javafx

我正在尝试在javaFx程序中显示一个2列网格。这就是我设置网格的方式:

    GridPane grid = new GridPane();

    ColumnConstraints column1 = new ColumnConstraints();
    column1.setPercentWidth(50);
    ColumnConstraints column2 = new ColumnConstraints();
    column2.setPercentWidth(50);
    grid.getColumnConstraints().addAll(column1, column2); 

这是问题所在。我想在一列结束和另一列开始之间显示一个小空格。但是,这些列显示为相互粘合。

以下是截图:

screenshot

此处每列包含“项目名称”和“处理,编辑,删除”按钮。

您可以看到列是如何粘在一起的。我希望他们之间有一些空间。

我该如何解决这个问题?

我的整体用户界面的层次结构如下:

场景> ScrollPane> BorderPane> Vbox(中心)> GridPane

2 个答案:

答案 0 :(得分:49)

为了更好的外观,您可以混合使用:

grid.setHgap(10); //horizontal gap in pixels => that's what you are asking for
grid.setVgap(10); //vertical gap in pixels
grid.setPadding(new Insets(10, 10, 10, 10)); //margins around the whole grid
                                             //(top/right/bottom/left)

答案 1 :(得分:15)

除了assylias的答案,您还可以为网格中的任何给定节点配置边距:

GridPane.setMargin(node, new Insets(5, 10, 5, 10));

GridPane.setMargin javadoc:

  

设置网格窗格包含的子级边距。如果设置,则网格窗格将围绕它放置边距空间。将值设置为null将删除约束。

最终(在Java 8之后),JavaFX可能允许您在任何节点周围设置边距,而不仅仅是GridPane中的节点。