Javafx2 :如何删除Gridpane中的行或列
题
如果我想在JavaFx中以编程方式添加一行文本字段,我可以简单地使用gridpane add方法
这会将一组文本字段添加到第1行。
for (int i = 0; i < Fields.size(); i++) {
gridpane.add(new TextField(), i, 1);
}
同样,如何删除一行?.我没有找到合适的方法来在JavaFX中轻松地删除行/列。
解决方案
没有直接等价的方法。要删除节点,只需使用
gridpane.getChildren().remove(...);
或 gridpane.getChildren().removeAll(...);
并传入要从窗格中删除的节点。
其他提示
在Java 8+中,您可以使用 removeIf
:
gridPane.getChildren().removeIf(node -> GridPane.getRowIndex(node) == rowNumber);
.
capeat
如果从 0th行中删除项目,也检查GridPane.getRowIndex(node) == null
,i.e.,
node -> GridPane.getRowIndex(node) == null || GridPane.getRowIndex(node) == 0
.
(我认为这是javafx离开行号作为生成的行数,当没有行号时,即使在fxml中的相应元素中没有给出行号,即使在fxml中没有不提供行号表示元素是在第0行中,因为默认行为第0行。)
这个工作很好:
while(MainGridPane.getRowConstraints().size() > 0){
MainGridPane.getRowConstraints().remove(0);
}
while(MainGridPane.getColumnConstraints().size() > 0){
MainGridPane.getColumnConstraints().remove(0);
}
. 不隶属于 StackOverflow