Простое добавление HBox
не дает ему фокуса, а когда у него нет фокуса, он не получит ключевые события.Вы должны переопределить onDock
и добавить слушателя вместо currentScene
.Если вам действительно нужно добавить слушателя на HBox
, добавьте слушателя и запросите фокус, как только представление будет закреплено:
fun main(args: Array<String>) {
launch<HelloWorldApp>(args)
}
class HelloWorldApp : App(HelloWorld::class)
class HelloWorld : View() {
override val root = hbox {
addEventFilter(KeyEvent.ANY) { event ->
println("pressed:" + event.character)
}
}
override fun onDock() {
root.requestFocus()
}
}