Как закрыть все приложение, когда окно TornadoFX закрыто? - PullRequest
0 голосов
/ 16 января 2020

Как я могу закрыть все приложение, когда окно TornadoFX закрыто?

В JavaFX обычно это:

val app = JFrame()
app.defaultCloseOperation = JFrame.EXIT_ON_CLOSE

Есть ли способ обнаружения в TornadoFX View закрыто?

1 Ответ

1 голос
/ 17 января 2020

Обычно закрытие основной ступени активирует функцию stop() класса приложения. Вот что вы хотите переопределить, чтобы выполнить свою собственную процедуру выключения:

class MyApp : App (FirstView::class) {
    override fun stop() {
        super.stop()
        /* Do your shutdown routine here  */
    }
}

Однако у меня были случаи, когда этот лог c ломался и работало только закрытие всей программы windows. Если у вас есть «главное окно», которое вы хотите обеспечить закрытие программы, добавьте его также в свой класс приложений:

override fun start(stage: Stage) {
   stage.setOnHiding { stop() }
}

Редактировать: я бы использовал вашу IDE, чтобы посмотреть, что именно * Функция 1008 * подходит для вас, а также посмотрите на ответы, связанные с Аброй, чтобы увидеть, что делает ванильная функция JavaFX Platform.exit(), поскольку TornadoFX является просто JavaFX по своей сути, и это наиболее явное завершение работы приложения JavaFX. Некоторые пользователи в этой теме сообщили, что их программа все еще зависает, в зависимости от того, что они делают, и предложили добавить System.exit(0);, также известный как exitProcess(0) в Kotlin, к своей процедуре завершения работы, чтобы убедиться, что программа умирает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...