javafx - 如何防止表格隐藏TornadoFX

标签 javafx kotlin tornadofx

我需要通过按Alt + F4禁用关闭我的应用程序(在全屏模式下可用)。我阅读了其他线程并编写了以下代码:

override fun start(stage: Stage) {
        Platform.setImplicitExit(false)
        stage.addEventFilter(KeyEvent.KEY_PRESSED) {
            if (it.isAltDown && it.code == KeyCode.F4) {
                it.consume()
            }
        }
        stage.setOnHiding { _ -> EventHandler<WindowEvent> { it.consume() } }
        stage.setOnCloseRequest { _ -> EventHandler<WindowEvent> {
            it.consume()
        } }

        stage.fullScreenExitKeyCombination = KeyCombination.NO_MATCH
        stage.fullScreenExitHint = ""
        stage.isFullScreen = true
        super.start(stage)
    }

问题是我的应用程序没有关闭,但是舞台被隐藏了。如何通过按alf + f4禁用隐藏表单?

最佳答案

我尝试将onCloseRequest设置为窗口而不是舞台。在OS X上,我按cmd + q后,窗口最小化,但没有关闭。我想我能得到的最好的解决方案是:

//Method in my view
override fun onDock() {
    super.onDock()
    currentWindow?.setOnCloseRequest {
        it.consume()
        currentStage?.isFullScreen = true //Set the window to fullscreen again
    }
}

就像我说的那样,这种行为是在OS X上出现的,我猜这在各种OS上都会有所不同...

关于javafx - 如何防止表格隐藏TornadoFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51857733/

相关文章:

kotlin - 如何测试Completable Emitter.tryOnError()

css - 如何在Tornadofx上向根添加背景图像

kotlin - 将域类包装到 ItemViewModel

java - 为什么我在启动简单代码(JavaFX)时遇到问题?

anchor - JavaFX anchor 不会扩展到整个场景

javafx - 尝试运行 javaFX 应用程序时缺少 javax.inject

java - Flink : Left joining a stream with a static list

android - Kotlin Android Studio-在类型为Intent的可为空的接收器上仅允许安全(?。)或非空声明(!!。)调用。

datepicker - 在 Kotlin TornadoFX 上获取日期选择器日期

javafx-2 - javafx2中的树项选择事件