我尝试编写一个可以打开多个子窗口的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无关)
发布于 2018-03-26 00:44:26
i3 seemes处理以父窗口作为浮动窗口的窗口。要以平铺模式启动窗口(或允许其他窗口管理器最小化/最大化),您必须将父窗口设置为null。在本例中,以下内容将起作用:
find<FileMapFragment>(
mapOf(
FileMapFragment::file to file
)
).openWindow(owner = null)
https://stackoverflow.com/questions/49468520
复制相似问题