我正在TornadoFX中创建一个小的非模式对话框,如下所示:
find<Grib>(scope).apply { openModal(block = true,
owner = FX.primaryStage,
stageStyle = StageStyle.UTILITY,
modality = Modality.NONE) }
我该如何设置(并检索)其窗口位置以备后用?也就是说,我有一个用于窗口位置的首选项对象,我想对其进行更新,以便下次用户打开窗口时,它在上次关闭窗口的位置打开。
答案 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)
此“主要”解决了一个问题,即它确实保存/恢复了窗口位置,但是当窗口从某个默认位置移动到新设置的位置时,该窗口在创建时会闪烁。