如何在javafx中使用getTarget?

如何在javafx中使用getTarget?,javafx,Javafx,问题是IntelliJ思想不允许我使用getTarget()方法。基本思想是当您单击jfxbutton时显示AnchorPane。怎么做?我有一种感觉,我需要连接一个库,但哪一个 控制器 package sample; import com.jfoenix.controls.JFXButton; import javafx.fxml.FXML; import javafx.scene.layout.AnchorPane; import java.awt.event.MouseEvent;

问题是IntelliJ思想不允许我使用
getTarget()
方法。基本思想是当您单击
jfxbutton
时显示
AnchorPane
。怎么做?我有一种感觉,我需要连接一个库,但哪一个

控制器

package sample;

import com.jfoenix.controls.JFXButton;
import javafx.fxml.FXML;
import javafx.scene.layout.AnchorPane;

import java.awt.event.MouseEvent;

import javafx.event.EventTarget;
import javafx.event.ActionEvent;
import javafx.animation.*;

public class Controller {
    @FXML
    private AnchorPane area;

    @FXML
    private AnchorPane per;

    @FXML
    private JFXButton btn_per;

    @FXML
    private JFXButton btn_area;
    int i = 1;

    @FXML
    private void handleButtonAction (MouseEvent event) {
        if (event.getTarget() == btn_per) { //This
            per.setVisible(true);
        }
    }


    public void initialize() {
        btn_per.setOnAction(event -> {
            per.setVisible(true);
            area.setVisible(false);
        });

        btn_area.setOnAction(event -> {
            per.setVisible(false);
            area.setVisible(true);
        });
    }
}

导入
javafx.scene.input.MouseEvent
而不是
java.awt.event.MouseEvent
。此外,如果使用
onAction
事件,正确的参数类型是
ActionEvent
,而不是
MouseEvent
。也可以使用
getSource
而不是
getTarget
。不过,最好使用多个处理程序来处理不同的节点,而不是检查源。此外,通常建议您为每个特定操作定义一个单独的方法,并且只使用应调用该操作的特定控件注册该处理程序方法。这样,就不需要测试事件的目标(或源,这可能是您真正想要的)。也可以从fxml注册处理程序,或者为此使用
initialize
方法,但不能同时使用这两种方法。使用
setOnAction
替换处理程序。如果需要添加多个处理程序,则应使用
addEventHandler(ActionEvent.ACTION,eventHandler)