如何在JavaFX中获取当前打开的阶段?
有没有办法在JavaFX中获取当前打开的阶段,如果有一个打开的?
像这样:
Stage newStage = new Stage();
newStage.initOwner(JavaFx.getCurrentOpenedStage()); //Like this
有没有办法在JavaFX中获取当前打开的阶段,如果有一个打开的?
像这样:
Stage newStage = new Stage();
newStage.initOwner(JavaFx.getCurrentOpenedStage()); //Like this
Java 9通过添加该方法使这成为可能。因此,您可以只获取Windows列表,并查看哪些正在显示javafx.stage.Window.getWindows()
List<Window> open = Stage.getWindows().stream().filter(Window::isShowing);
如果需要事件处理程序方法中的当前阶段引用,可以从 ActionEvent 参数中获取它。例如:
@FXML
public void OnButtonClick(ActionEvent event) {
Stage stage = (Stage)((Node) event.getSource()).getScene().getWindow();
(...)
}
还可以从控制器中声明的任何控件获取它:
@FXML
private Button buttonSave;
(...)
Stage stage = (Stage) buttonSave.getScene().getWindow();