ScalaFX 按钮 => 如何定义 Action ?

标签 scala javafx scalafx

我正在尝试为 按钮 中完成的 onAction Action 定义 onAction scalafx 但我可以。

package App.Desktop

import javafx.event.EventHandler

import scalafx.event.ActionEvent

import scalafx.scene.control.Button

class Window() {

  btn_YES.onAction = (event: ActionEvent) => 
   new EventHandler[ActionEvent] {
     override def handle(event: ActionEvent) {
        /*Do something*/
      }
    }
  }
}

我已完成此操作,但出现错误
Error: type mismatch;
 found   : scalafx.event.ActionEvent => javafx.event.EventHandler[scalafx.event.ActionEvent]
 required: javafx.event.EventHandler[javafx.event.ActionEvent]
  btn_YES.onAction = (event: ActionEvent) => new EventHandler[ActionEvent]

我也尝试使用 javafx.event.ActionEvent 而不是 scalafx 但它也不起作用。

有什么线索吗?

谢谢

最佳答案

拳头,使用 ScalaFX 重要的是导入 scalafx.Includes._ .它带来了许多 ScalaFX 特性。

有两种推荐的添加方式 onAction处理程序。主要是使用(event:ActionEvent) => { ... )关闭:

import scalafx.Includes._
import scalafx.event.ActionEvent

btn_YES.onAction = (event: ActionEvent) =>  {
  /*Do something*/
}

如果你不在乎 event目的。您可以节省一些输入并使用 handle {...} :

import scalafx.Includes._

btn_YES.onAction = handle {
  /*Do something*/
}

在这两种情况下,您都需要导入 scalafx.Includes._

关于ScalaFX 按钮 => 如何定义 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36570947/

相关文章:

android - Android 上的 Scalafx

java - NoSuchMethodError : scala. Predef$.$conforms()Lscala/Predef$$less$冒号$less

algorithm - 二进制搜索 ArrayBuffer

scala - Scala中的Seq和Set有什么区别

java - 在 JVM 上设置默认参数

java - 除了为绑定(bind)添加语法糖之外,ScalaFX 还有哪些好处?

scala - 找不到表 "play_evolutions"

java - 在 JavaFX 中实现标签栏

java - 将按钮绑定(bind)到多个 boolean 值javafx

java - 在 BorderPane 内部时不遵守 ScalaFX/JavaFX Node.translateX/Y