ScalaFx:具有一流功能的事件处理程序

标签 scala event-handling first-class-functions scalafx

我尝试在scalaFx应用程序中编写事件处理程序。我找到了Followin解决方案:

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)

编译器说:

No implicit view available from javafx.scene.input.MouseEvent => scalafx.delegate.SFXDelegate[javafx.scene.input.MouseEvent] with javafx.scene.input.MouseEvent.

最佳答案

使用ScalaFX时,您始终需要记住使用:

import scalafx.Includes._

这样可以解决您的错误。有许多使用ScalaFX方法使用事件处理程序的示例,例如:
  • Event handling examples in ProScalaFX
  • Event handling demos in ScalaFX-Demos
  • Event filter examples
  • 关于ScalaFx:具有一流功能的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21836133/

    相关文章:

    ScalaMock,基于 ClassTag 返回

    java - 玩!框架日志记录仅适用于系统级别

    scala - 从 Slick HLIST 中获取元素(或将 Slick HLIst 转换为 Shapeless HList)

    javascript - react native iOS : How to listen to incoming links and handle them when the app is closed?

    Java串行数据事件处理

    c# - 事件功能未按预期工作

    Python:类方法内的变量

    java - 一流的功能

    Scala - 根据逻辑添加元素

    javascript - 这两个函数如何等价?