JavaFX中的setOnAction(使用Scala) - 它是如何工作的?

时间:2014-07-31 00:58:30

标签: scala javafx handle

以下是代码:

numSixBtn.setOnAction(new EventHandler[ActionEvent] {
  def handle(event: ActionEvent) = display.setText(display.getText + "6")
})

我的问题是,通常当你有方法时,你调用方法并传入括号中的参数。但是在这里,我们从不调用handle方法,并且我们从不为参数传递任何内容(event:ActionEvent)。那它是如何运作的?

感谢

1 个答案:

答案 0 :(得分:1)

事件处理程序是callback function

JavaFX运行一个处理传入事件信号的事件处理循环。当按钮上发生动作事件(单击按钮)时,JavaFX系统将通过调用handle(event)函数调用事件处理程序,将ActionEvent作为参数传递给事件处理程序。

此类事件回调是所有UI处理框架的一个非常常见的方面。

有关详细信息,请阅读event processing in JavaFX

我建议使用Java API学习JavaFX,直到你对ScalaFX很熟悉(这只是我主动学习JavaFX编程的最简单方法)。