javafx点击按钮关闭多个指定的窗口
时间: 2023-08-03 22:03:12 浏览: 161
要实现点击按钮关闭多个指定的JavaFX窗口,您可以将所有需要关闭的窗口存储在一个列表中,然后在按钮的事件处理程序中循环遍历该列表,逐个关闭窗口。以下是一个示例代码:
```java
Button closeButton = new Button("Close Windows");
closeButton.setOnAction(event -> {
List<Stage> windowsToClose = new ArrayList<>();
windowsToClose.add(primaryStage); // 将主窗口加入列表
windowsToClose.add(secondStage); // 将第二个窗口加入列表
windowsToClose.add(thirdStage); // 将第三个窗口加入列表
for (Stage window : windowsToClose) {
window.close(); // 逐个关闭窗口
}
});
```
在上面的代码中,我们首先创建一个“Close Windows”按钮,并为其设置一个事件处理程序。在事件处理程序中,我们创建了一个`List<Stage>`对象,并将需要关闭的窗口依次添加到该列表中。然后,我们使用`for`循环逐个遍历该列表中的窗口,并调用`close()`方法关闭每个窗口。
请注意,上述代码仅为示例代码,您需要将其中的主窗口、第二个窗口和第三个窗口替换为您需要关闭的窗口。
另外,如果您需要同时关闭当前窗口和其他指定的窗口,您可以将当前窗口也添加到`List<Stage>`对象中,并在循环遍历该列表时使用`if`语句判断当前窗口,如果是当前窗口,则先关闭当前窗口,再依次关闭其他窗口。例如:
```java
Button closeButton = new Button("Close Windows");
closeButton.setOnAction(event -> {
List<Stage> windowsToClose = new ArrayList<>();
windowsToClose.add(primaryStage); // 将主窗口加入列表
windowsToClose.add(secondStage); // 将第二个窗口加入列表
windowsToClose.add(thirdStage); // 将第三个窗口加入列表
for (Stage window : windowsToClose) {
if (window == primaryStage) {
window.close(); // 先关闭当前窗口
} else {
window.hide(); // 隐藏其他窗口
}
}
});
```
在上面的代码中,我们在循环遍历窗口列表时,使用`if`语句判断当前窗口是否为主窗口,如果是主窗口则调用`close()`方法关闭该窗口,否则调用`hide()`方法隐藏该窗口。请注意,如果您使用`hide()`方法隐藏窗口,则该窗口可以通过调用`show()`方法重新显示。
阅读全文