6

我正在寻找 javafx 的解决方案FileChooser(在 Kotlin 中)。我坚持这一点,我无法通过根视图,因为Window!预期:

button("open some file") {

                    setOnAction {
                        val fileChooser = FileChooser();
                        val file = fileChooser.showOpenDialog(???)
                        ...
                    }

                }

在这种情况下我应该通过什么?

4

2 回答 2

9

根据文档,您可以为窗口传递 a null

如果设置了文件对话框的所有者窗口,则在显示文件对话框时阻止对话框所有者链中所有窗口的输入。

但是,由于您使用的是 TornadoFX,您可能只想使用它提供的chooseFilechooseDirectory功能。它们使用有用的默认值自动为您处理毛茸茸的部分,但是(因为它们毕竟只是默认值)您可以轻松地覆盖它们以根据您的需要定制功能。

于 2016-11-22T03:38:25.097 回答
4

以下代码对我有用:

with(root) {
    button("Target Directory") {
        action {
            var dir = chooseDirectory("Select Target Directory")
        }
    }
}

在 Windows 上,文件选择器对话框将默认打开“我的电脑”。

于 2017-12-13T18:54:45.360 回答