Javafx 2:如何删除Gridpane中的行或列

时间:2014-04-11 02:38:32

标签: javafx-2 gridpane

如果我想在JavaFx中以编程方式添加一行文本字段,我只需使用gridpane add方法

这会在第1行添加一组文本字段。

for (int i = 0; i < Fields.size(); i++) {
   gridpane.add(new TextField(), i, 1);
}

同样,我如何删除一行?我找不到合适的方法来在JavaFX中方便地删除行/列。

3 个答案:

答案 0 :(得分:8)

没有直接等效的方法。要删除节点,只需使用 gridpane.getChildren().remove(...);gridpane.getChildren().removeAll(...);并传入要从窗格中删除的节点。

答案 1 :(得分:2)

在Java 8+中,您可以使用removeIf

gridPane.getChildren().removeIf(node -> GridPane.getRowIndex(node) == rowNumber);

<强>买者
如果从第0行中删除项目,也请检查GridPane.getRowIndex(node) == null,即

node -> GridPane.getRowIndex(node) == null || GridPane.getRowIndex(node) == 0

(我认为这是JavaFX,当FXML中的相应元素中没有给出行号时,将行号保留为null,即使在FXML中没有给出行号意味着该元素在第0行,因为默认行是第0行。)

答案 2 :(得分:1)

这非常有效:

while(MainGridPane.getRowConstraints().size() > 0){
    MainGridPane.getRowConstraints().remove(0);
}

while(MainGridPane.getColumnConstraints().size() > 0){
    MainGridPane.getColumnConstraints().remove(0);
}