【发布时间】:2018-03-26 16:44:26
【问题描述】:
我尝试编写一个可以打开多个子窗口的 JavaFX 应用程序(TornadoFX,因为我使用的是 kotlin)。在 i3wm 中,每个窗口都应该以平铺模式显示。在其他非平铺窗口管理器上,它应该开始最大化。但目前它总是以浮动模式打开。我认为这可以通过最大化窗口来存档。所以我在两种变体中尝试了以下onDock() 方法。但两种变体都不起作用。
class FileMapFragment : Fragment() {
val file:Path by param()
final override val root =
borderpane {
...
}
override fun onDock() {
//Variant 1
val screen = Screen.getPrimary()
val bounds = screen.visualBounds
currentStage?.x = bounds.minX
currentStage?.y = bounds.minY
currentStage?.width = bounds.width
currentStage?.height = bounds.height
//Variant 2
currentStage?.isMaximized = true
currentStage?.isIconified = true
}
}
此片段由以下代码打开
find<FileMapFragment>(
mapOf(
FileMapFragment::file to file
)
).openWindow()
Variant 1 处于伪全屏模式,但不处于平铺模式。有人知道解决方案吗? (我认为这是一个通用的 JavaFX 问题,与 kotlin/TornadoFX 无关)
【问题讨论】:
-
请阅读stackoverflow.com/help/mcve并采取相应措施
-
感谢您指出本网站。当我重写代码以匹配这个标准时,我解决了这个问题。如果有人有类似的问题,我会添加答案。 (并且会记住这篇文章以了解更多问题)
-
很好,它对你有帮助:))
标签: java javafx kotlin tornadofx