如果我想在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);
}
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top