9

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] with javafx.scene.input.MouseEvent から利用可能な暗黙的なビューはありません。

4

1 に答える 1

20

ScalaFX を使用するときは、常に以下を使用することを覚えておく必要があります。

import scalafx.Includes._

これにより、発生したエラーが解決されます。ScalaFX の方法でイベント ハンドラーを使用する例は多数あります。たとえば、次のようになります。

于 2014-02-18T02:37:38.697 に答える