如何在javafx上使用setOnAction事件

如何在javafx上使用setOnAction事件,javafx,eventhandler,Javafx,Eventhandler,我想验证textfield是否为空或是否未使用javafx 我对事件处理程序感到困惑。我想确认: -是否有多种方法可以使用setOnAction: submit.setOnAction((new EventHandler<MouseEvent>() { public void handle(MouseEvent event) { System.out.println("Hello World"); } })); 这两种选择有什么区

我想验证textfield是否为空或是否未使用javafx

我对事件处理程序感到困惑。我想确认: -是否有多种方法可以使用setOnAction:

submit.setOnAction((new EventHandler<MouseEvent>() { 
     public void handle(MouseEvent event) { 
        System.out.println("Hello World"); 
     } 
    }));
这两种选择有什么区别

第二个选项是否不能使用ActionEvent submit.setonaction->handle; 那么,定义e的目的是什么呢? 我想验证我的应用程序中的文本字段

public class AppGUI extends Application{

public static void main(String[] args)
{
    launch();
}


public void start(Stage topView)
{
    createUI(topView);
}

private void createUI(Stage topView)
{
    TextField name = TextField();
    Button submit = new Button("Submit");
    submit.setOnAction(e -> validate());
}
private boolean validate()
{
   // if textfield is empty, return false. else, return true. 
}
我在这里迷路了。如果验证中不使用setOnAction中的e,可以吗?如何传递textfield的值以进行验证?让textfields成为私有变量是唯一的方法吗?因为我有这么多的文本字段,我想知道这是否是一个好的选择。 在createUI方法中,如何判断validate是否返回false,显示错误消息,如果返回true,如何执行其他操作? 谢谢你,很抱歉打扰你

这两种选择有什么区别

在第二个选项中使用的是自Java8以来出现的

那么,定义e的目的是什么呢

对于按钮,您的方法有一个类似于setOnActionEventHandler的签名和一个。例如,您可以通过e.getSource获得事件最初发生在其上的对象

如果在validate中不使用e就可以了

要传递textfield的值,您的方法应该具有如下签名

boolean validate(String text);
代码示例:

private void createUI(Stage topView){
  TextField name = TextField();
  Button submit = new Button("Submit");

  submit.setOnAction(e -> {
      boolean validated = validate(name.getText());
      if(validated) System.out.println("validated"); 
  }
}

private boolean validate(String text){
  return text != null && !text.isEmpty();
}
这两种选择有什么区别

在第二个选项中使用的是自Java8以来出现的

那么,定义e的目的是什么呢

对于按钮,您的方法有一个类似于setOnActionEventHandler的签名和一个。例如,您可以通过e.getSource获得事件最初发生在其上的对象

如果在validate中不使用e就可以了

要传递textfield的值,您的方法应该具有如下签名

boolean validate(String text);
代码示例:

private void createUI(Stage topView){
  TextField name = TextField();
  Button submit = new Button("Submit");

  submit.setOnAction(e -> {
      boolean validated = validate(name.getText());
      if(validated) System.out.println("validated"); 
  }
}

private boolean validate(String text){
  return text != null && !text.isEmpty();
}

如何继续检查验证并执行其他操作返回的值?我建议指向EventHandler的文档,而不是ActionEvent,因为它包含与本例相关的接口结构。如何继续检查验证并执行其他操作返回的值?我建议指向EventHandler的文档,不是ActionEvent,因为它包含与本例相关的接口结构。