gpt4 book ai didi

java - 不同包中的 FXML 和 Controller - Button onAction 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:10:17 25 4
gpt4 key购买 nike

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

这是包树:

enter image description here

这是无效的代码示例:

<?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>

错误发送者:

onAction="#handleSubmitButtonAction"

说:“处理程序方法不可访问。公开或使用@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 行,代码可以完美运行。

谢谢大家!

最佳答案

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

关于java - 不同包中的 FXML 和 Controller - Button onAction 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29879149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com