如果我想在JavaFx中以编程方式添加一行文本字段,我可以简单地使用gridpane add方法
这会在第1行添加一组文本字段.
for (int i = 0; i < Fields.size(); i++) {
gridpane.add(new TextField(), i, 1);
}
Run Code Online (Sandbox Code Playgroud)
同样,如何删除一行?我找不到合适的方法来在JavaFX中方便地删除行/列.
没有直接等效的方法.要删除节点,只需使用
gridpane.getChildren().remove(...);
或gridpane.getChildren().removeAll(...);
传入要从窗格中删除的节点.
在 Java 8+ 中,您可以使用removeIf
:
gridPane.getChildren().removeIf(node -> GridPane.getRowIndex(node) == rowNumber);
Run Code Online (Sandbox Code Playgroud)
警告
如果从第 0 行删除项目,还要检查GridPane.getRowIndex(node) == null
,即
node -> GridPane.getRowIndex(node) == null || GridPane.getRowIndex(node) == 0
Run Code Online (Sandbox Code Playgroud)
(我认为这是 JavaFX 留下的行号,就像null
在 FXML 中的相应元素中没有给出行号一样,即使在 FXML 中没有给出行号意味着该元素位于第 0 行,因为默认行是第 0 行。 )
归档时间: |
|
查看次数: |
17988 次 |
最近记录: |