java - 获取 Controller 中的 View

标签 java model-view-controller javafx

我想问如何获得我在 Controller 中显示的 View 。 我想要这样做的原因是 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());
});

关于java - 获取 Controller 中的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017322/

相关文章:

java - Controller 中的 Spring AOP

model-view-controller - MVC 实现/最佳实践问题

java - 将构造函数调用传递给其他类

java.util.concurrent.TimeUnit 类设计模式

java - 在 Java 内部,原始 boolean 值被视为 -1?

PHP MVC Fat Controller VS Fat 模型

JavaFX 使用 for 循环将操作分配给数组数组中的所有按钮

java - 用java编译包

java - 使用 Stream 时如何格式化 Java Properties 对象的内容?

java - JavaFX 启动时的奇怪连接