2014-02-17 27 views
6

我嘗試在scalaFx應用程序中編寫事件處理程序。我發現followin解決方案:ScalaFx:具有頭等功能的事件處理程序

import scalafx.scene.control.ListView 
import javafx.scene.input.MouseEvent 
import javafx.event.EventHandler 

... 

    val list = new ListView[String] { 
     onMouseClicked = new EventHandler[MouseEvent] { 
      override def handle(event: MouseEvent) { 
       doSomething(event) 
      } 
     } 
    } 

但是,這似乎是非常Java風格的樣板代碼。有沒有辦法用這樣的頭等功能來做到這一點?

 onMouseClicked = (event: MouseEvent) => doSomething(event) 

編譯器表示:

沒有隱式的視圖可從javafx.scene.input.MouseEvent => scalafx.delegate.SFXDelegate [javafx.scene.input.MouseEvent]與javafx.scene.input .MouseEvent。

回答