Java FXML和控制器在不同的包中-按钮操作问题

Java FXML和控制器在不同的包中-按钮操作问题,java,javafx,controller,fxml,Java,Javafx,Controller,Fxml,我是JavaFX新手,目前在使用不同包中的类处理onAction事件时遇到一些问题 以下是包树: 以下是不起作用的代码示例: <?import java.net.*?> <?import javafx.geometry.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.text.*?> <Gr

我是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>
说明:“处理程序方法不可访问。公开,或用@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");
    }

}
正如您所看到的,@FXML标记已经添加,所以我不知道问题出在哪里。这可能有点傻,但我真的搞不懂

顺便说一句,没有onAction行,代码工作得很好


谢谢你们

尝试将
导入java.awt.event.ActionEvent
替换为
导入javafx.event.ActionEvent
。JavaFX可能试图使用其他类型的参数调用您的方法,但找不到合适的重载方法。

将受保护的void handleSubmitButtonAction更改为public method这不会更改任何内容。
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");
    }

}