我想问一下如何在控制器中显示视图。
我要执行此操作的原因是DirectoryChooser
对话框需要ownerWindow
才能正常工作。
还有其他解决方案吗?
DirectoryChooser directoryChooser = new DirectoryChooser();
File file = directoryChooser.showDialog(/*I need a javafx.stage.window here!*/);
最佳答案
只需从当前显示的任何场景图元素中获取当前窗口的引用即可。
element.getScene().getWindow()
例如,如果对话框是通过按钮操作打开的,则可以从按钮引用中获取窗口。代码如下:
button.setOnAction(e -> {
DirectoryChooser directoryChooser = new DirectoryChooser();
File file = directoryChooser.showDialog(button.getScene().getWindow());
});