当我运行以下代码时
fun main(args: Array<String>) {
Application.launch(HelloWorldApp::class.java, *args)
}
class HelloWorldApp : App(HelloWorld::class)
class HelloWorld : View() {
override val root = hbox {
addEventFilter(KeyEvent.ANY) { event ->
println("pressed:"+event.character)
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我按下键盘上的任何键时, println() 永远不会被调用。我错过了什么吗?
简单地添加一个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()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1111 次 |
| 最近记录: |