对话框窗口定位

时间:2019-06-07 15:24:58

标签: tornadofx

我正在TornadoFX中创建一个小的非模式对话框,如下所示:

find<Grib>(scope).apply { openModal(block = true,
                          owner = FX.primaryStage,
                          stageStyle = StageStyle.UTILITY,
                          modality = Modality.NONE) }

我该如何设置(并检索)其窗口位置以备后用?也就是说,我有一个用于窗口位置的首选项对象,我想对其进行更新,以便下次用户打开窗口时,它在上次关闭窗口的位置打开。

1 个答案:

答案 0 :(得分:0)

通过浏览一些TornadoFX源代码,我基本上可以解决我的问题。

我将此添加到了init {}函数中:

Platform.runLater {
    root.scene.window.x = Main.preferences.getDouble(GRIB_WINDOW_X, 400.0)
    root.scene.window.y = Main.preferences.getDouble(GRIB_WINDOW_Y, 400.0)
}

然后将其添加到我的close()函数中:

Main.preferences.putDouble(GRIB_WINDOW_X, root.scene.window.x)
Main.preferences.putDouble(GRIB_WINDOW_Y, root.scene.window.y)

此“主要”解决了一个问题,即它确实保存/恢复了窗口位置,但是当窗口从某个默认位置移动到新设置的位置时,该窗口在创建时会闪烁。