不同包中的 FXML 和控制器 - Button onAction 问题

Xem*_*ema 4 java controller javafx fxml

我是 JavaFX 新手,目前在使用不同包中的类处理 onAction 事件时遇到一些问题。

这是包树:

在此输入图像描述

这是不起作用的代码示例:

<?import java.net.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<GridPane fx:controller="GUIController.AccueilController" 
    xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">

    ...

    <HBox spacing="10" alignment="bottom_right" 
        GridPane.columnIndex="1" GridPane.rowIndex="4">
        <Button text="Se connecter" onAction="#handleSubmitButtonAction"/>
    </HBox>

    ...

</GridPane>
Run Code Online (Sandbox Code Playgroud)

错误由以下人员发送:

onAction="#handleSubmitButtonAction"
Run Code Online (Sandbox Code Playgroud)

说:“处理程序方法不可访问。公开,或使用 @FXML 进行注释”

这是 AccueilController.java 文件:

package GUIController;

import java.awt.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.text.Text;

public class AccueilController {

    @FXML private Text actiontarget;

    @FXML protected void handleSubmitButtonAction(ActionEvent event) {
        actiontarget.setText("Sign in button pressed");
    }

}
Run Code Online (Sandbox Code Playgroud)

可以看到,@FXML标签被添加了,所以不知道问题出在哪里。可能有点蠢,但我真的想不通。

顺便说一句,如果没有 onAction 行,代码可以完美运行。

感谢你们 !

Pav*_*dko 5

尝试替换import java.awt.event.ActionEventimport javafx.event.ActionEvent. JavaFX 可能尝试使用另一种类型的参数调用您的方法,但找不到合适的重载方法。