我想问一下如何在控制器中显示视图。
我要执行此操作的原因是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());
});

10-05 20:23