我试图为在onAction 中完成的Button定义一个Button,但我无法让它工作。
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,但是它也不起作用。
有线索吗?
谢谢
发布于 2016-04-12 12:59:56
我不是Scala程序员,但看起来这里混合了两种不同的形式: lambda表达式和显式类。
试一试
package App.Desktop
import javafx.event.EventHandler
import javafx.event.ActionEvent
import scalafx.scene.control.Button
class Window() {
btn_YES.onAction =
new EventHandler[ActionEvent] {
override def handle(event: ActionEvent) {
/*Do something*/
}
}
}或
package App.Desktop
import javafx.event.EventHandler
import javafx.event.ActionEvent
import scalafx.scene.control.Button
class Window() {
btn_YES.onAction = (event: ActionEvent) => {
/*Do something*/
}
}发布于 2016-04-25 15:46:55
首先,使用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._
发布于 2016-04-12 12:24:01
你可以用这个来做按钮动作,
btn_YES.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
//Do some action here
}
});https://stackoverflow.com/questions/36570947
复制相似问题