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

Cli*_*ote 25 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); 
Run Code Online (Sandbox Code Playgroud)

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

这是一个截图:

截图

此处每列包含"项目名称"和"处理,编辑,删除"按钮.

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

我怎么解决这个问题?

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

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

ass*_*ias 52

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

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)
Run Code Online (Sandbox Code Playgroud)


jew*_*sea 15

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

GridPane.setMargin(node, new Insets(5, 10, 5, 10));
Run Code Online (Sandbox Code Playgroud)

GridPane.setMargin javadoc:

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

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