如何在 JavaFX GridPane 的列之间设置填充?
Posted
技术标签:
【中文标题】如何在 JavaFX GridPane 的列之间设置填充?【英文标题】:How to set padding between columns of a JavaFX GridPane? 【发布时间】:2013-12-25 13:58:35 【问题描述】:我正在尝试在 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);
这就是问题所在。我想在一列结束和另一列开始之间显示一个小空间。但是,这些列显示为相互粘连。
截图如下:
这里每一列都包含“项目名称”和“处理、编辑、删除”按钮。
您可以看到这些列是如何粘合在一起的。我希望它们之间有一些空间。
我该如何解决这个问题?
我的整个 UI 的层次结构是这样的:
Scene > ScrollPane > BorderPane > Vbox (Center) > GridPane
【问题讨论】:
【参考方案1】:为了更好的外观,您可以混合使用:
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)
【讨论】:
【参考方案2】:除了 assylias 的回答之外,您还可以为网格中的任何给定节点配置边距:
GridPane.setMargin(node, new Insets(5, 10, 5, 10));
GridPane.setMarginjavadoc:
设置子元素被网格窗格包含时的边距。如果设置,网格窗格将在其周围放置边距空间。将值设置为 null 将删除约束。
最终(Java 8 之后),JavaFX 可能允许您在任何节点周围设置边距,而不仅仅是 GridPane 中的节点。
【讨论】:
以上是关于如何在 JavaFX GridPane 的列之间设置填充?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JavaFX 的 GridPane 中删除“幽灵线”?
我可以强制 JavaFX 的 GridPane 平均分配空间吗?