我正在尝试在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);
这是问题所在。我想在一列结束和另一列开始之间显示一个小空格。但是,这些列显示为相互粘合。
以下是截图:
此处每列包含“项目名称”和“处理,编辑,删除”按钮。
您可以看到列是如何粘在一起的。我希望他们之间有一些空间。
我该如何解决这个问题?
我的整体用户界面的层次结构如下:
场景> ScrollPane> BorderPane> Vbox(中心)> GridPane
答案 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中的节点。