在 JavaFx 的网格窗格中对节点进行分组

Group nodes in gridpane in JavaFx

是否可以在 javafx 的组节点中对网格窗格的单元格进行聚类?我想这样做的原因是在网格窗格的子集上应用不同的 css 选择器。

我在网格窗格中有这些单元格(2 行,4 列):

a1 | a2 | b1| b2
c1 | c2 | d1| d2

我有 4 个子集 (a1, a2) (b1, b2) (c1, c2)(d1, d2).我尝试了嵌套网格,但是,如果每个单元格的内容具有不同的大小(例如,我为 a1 和 c1 获得不同的列大小),这将不会提供很好的布局。

The reason why I want to do this, is to apply different css selectors on subsets in the gridpane.

您可以简单地为节点提供适当的样式 类:

a1.getStyleClass().add("a");
a2.getStyleClass().add("a");
b1.getStyleClass().add("b");
b2.getStyleClass().add("b");
c1.getStyleClass().add("c");
c2.getStyleClass().add("c");
d1.getStyleClass().add("d");
d2.getStyleClass().add("d");

或 FXML

<Node fx:id="a1" styleClass="a"><!-- ... --></Node>
<Node fx:id="a2" styleClass="a"><!-- ... --></Node>
<Node fx:id="b1" styleClass="b"><!-- ... --></Node>
<Node fx:id="b2" styleClass="b"><!-- ... --></Node>

<!-- etc -->

然后您可以 select 它们并在 CSS:

中应用样式
.a {
    /* style rules for a1 and a2 */
}
.b {
    /* style rules for b1 and b2 */
}

然后,当然,只需按您需要的任何方式布置它们(例如,在单个网格窗格中)。