如果我想在JavaFx中以编程方式添加一行文本字段,我只需使用gridpane add方法
这会在第1行添加一组文本字段。
for (int i = 0; i < Fields.size(); i++) {
gridpane.add(new TextField(), i, 1);
}
同样,我如何删除一行?我找不到合适的方法来在JavaFX中方便地删除行/列。
答案 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);
}