在JavaFX和scenebuilder项目中,如何在Controller中使用setOnAction()方法class

In JavaFX and scenebuilder project, how to use the setOnAction() method in Controller class

我是 JavaFX 和 SceneBuilder 的新手。 我在 Eclipse 中使用 SceneBuilder 创建了一个应用程序。 (右键单击 FXML 文件 > 使用 SceneBuilder 打开) 在initialize方法里面,我看不到setOnAction方法。

package application.controller;

import com.jfoenix.controls.JFXPasswordField;
import com.jfoenix.controls.JFXTextField;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.scene.image.ImageView;

public class controller {

    

    @FXML
    private ResourceBundle resources;

    @FXML
    private URL location;

    @FXML
    private JFXTextField loginID;

    @FXML
    private JFXPasswordField passwordID;

    @FXML
    private ImageView loginButton;

    @FXML
    public void initialize() {
        loginButton.setona
        
    }
    
    
    
}

onAction 方法用于通用操作,并非每个组件都有该方法。如果你想在用户点击按钮时触发一个事件,你可以使用

 loginButton.setOnMouseClicked(event -> System.out.println("click")); 
现在如果你想尝试添加 onAction 处理程序你可以简单地添加它添加它有事件过滤器,但我不确定它是否适用于 imageview

  loginButton.addEventFilter(ActionEvent.ANY, event -> ...)  

您将 loginButton 定义为 ImageViewImageView 没有 setOnAction 方法。请改用 setOnMouseClicked