我试图通过单击按钮来删除网格窗格的单元格内容(即标签)。到目前为止,这是我所做的:
@FXML
private GridPane myGridPane;
public void clearButtonClicked() {
ObservableList<Node> childrens = myGridPane.getChildren();
for (Node node : childrens) {
if (node instanceof Label) {
Node nodeToDelete = node;
myGridPane.getChildren().remove(nodeToDelete);
}
}
}
public void addButtonClicked() {
for (int x = 0; x <= 1; x++) {
for (int y = 1; y <= 2; y++) {
myGridPane.add(new Label(x + "," + y), x, y);
}
}
}
@Override
public void initialize(URL url, ResourceBundle rb) {
Button clear = new Button("Clear");
Button add = new Button("Add");
add.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
addButtonClicked();
}
});
clear.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
clearButtonClicked();
}
});
addButtonClicked();
myGridPane.add(add, 0, 0);
myGridPane.add(clear, 1, 0);
}
按添加按钮将完成我期望的操作,即用以其坐标为值的标签填充单元格。但是每当我按下清除按钮时,即使我没有中断,它似乎也只能清除它会找到的第一个标签(0,1)。我期望它会遍历网格窗格的所有内容,直到它为空或到达末尾为止。我怎样才能做到这一点?如果我按下清除按钮,它将清除网格窗格中的所有标签?或者更具体地说,清除网格窗格中特定坐标范围内的所有标签(我想在另一个项目中这样做)? (例如,在第1列至第2列,第1列至第2行以及每行的开始单元格和结束单元格内(例如1,1到1,3))。希望您能提供帮助。谢谢!