У меня есть простое приложение в Kotlin, которое рисует прямоугольник, а затем использует fixedRateTimer для обновления местоположения прямоугольника 30 раз в секунду.У меня проблема в том, что когда я закрываю окно с прямоугольником, приложение продолжает работать, и мне нужно нажать на красный квадрат внутри Intellij, чтобы фактически остановить его.
Я пытался отменить fixedRateTimer перед тем, как закрыть окно, но приложение все еще работает, оно просто ничего не делает.Если я запускаю приложение без fixedRateTimer, оно просто отображает квадрат, а затем, когда я закрываю окно, оно останавливает приложение.
import javafx.scene.paint.Color
import tornadofx.*
import kotlin.concurrent.fixedRateTimer
class MyApp: App(MyView::class)
class MyView : View() {
override val root = stackpane {
group {
rectangle {
fill = Color.LIGHTGRAY
width = 600.0
height = 480.0
}
val myRect = rectangle {
fill = Color.BLUEVIOLET
width = 30.0
height = 30.0
x = 100.0
y = 100.0
}
fixedRateTimer("default", false, 0L, 1000/30) {
myRect.x += 1
if(myRect.x > 200) this.cancel()
}
}
}
}