【问题标题】:How to set padding between columns of a JavaFX GridPane?如何在 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

【问题讨论】:

    标签: java javafx


    【解决方案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 中的节点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-07
        • 2015-10-16
        • 1970-01-01
        • 2020-09-10
        • 2016-05-06
        • 1970-01-01
        • 2021-01-13
        • 2017-08-08
        相关资源
        最近更新 更多