以下是代码:
numSixBtn.setOnAction(new EventHandler[ActionEvent] {
def handle(event: ActionEvent) = display.setText(display.getText + "6")
})
我的问题是,通常当你有方法时,你调用方法并传入括号中的参数。但是在这里,我们从不调用handle方法,并且我们从不为参数传递任何内容(event:ActionEvent)。那它是如何运作的?
感谢
答案 0 :(得分:1)
事件处理程序是callback function。
JavaFX运行一个处理传入事件信号的事件处理循环。当按钮上发生动作事件(单击按钮)时,JavaFX系统将通过调用handle(event)
函数调用事件处理程序,将ActionEvent作为参数传递给事件处理程序。
此类事件回调是所有UI处理框架的一个非常常见的方面。
有关详细信息,请阅读event processing in JavaFX。
我建议使用Java API学习JavaFX,直到你对ScalaFX很熟悉(这只是我主动学习JavaFX编程的最简单方法)。