单击javaFx中的“添加/删除”按钮时如何添加/删除特定一行的ChoiceBox,TextField和Label。
时间: 2024-02-13 15:03:02 浏览: 29
首先,你需要有一个包含ChoiceBox、TextField和Label的JavaFX布局(如GridPane)。接下来,你需要为“添加”按钮和“删除”按钮分别创建事件处理程序。
对于“添加”按钮,当被单击时,你需要创建一个新的ChoiceBox、TextField和Label,并将它们添加到布局中的新行中。你可以使用布局的add()方法将它们添加到新行中。例如:
```java
// 创建新的控件
ChoiceBox<String> choiceBox = new ChoiceBox<>();
TextField textField = new TextField();
Label label = new Label("New Row");
// 将控件添加到布局中
int newRow = gridPane.getRowCount(); // 获取新行的索引
gridPane.add(choiceBox, 0, newRow);
gridPane.add(textField, 1, newRow);
gridPane.add(label, 2, newRow);
```
对于“删除”按钮,当被单击时,你需要找到要删除的行,并从布局中删除它。你可以使用布局的getChildren()方法获取所有子节点,然后遍历这些节点,查找要删除的行。一旦找到了要删除的行,你可以使用布局的getRowIndex()方法获取该行的索引,然后使用布局的getChildren().remove()方法将该行从布局中删除。例如:
```java
// 查找要删除的行
for (Node node : gridPane.getChildren()) {
Integer rowIndex = GridPane.getRowIndex(node);
if (rowIndex != null && rowIndex == selectedRow) {
// 从布局中删除该行
gridPane.getChildren().remove(node);
break;
}
}
```
这里的“selectedRow”是要删除的行的索引。你可以根据需要将其设置为变量或使用其他方式指定要删除的行。