JavaFX 错误:事件处理程序不在命名空间中

我正在创建一个 JavaFX 应用程序。我可以启动应用程序并登录,但是当我尝试访问客户场景时,出现以下错误:

(提前对所有代码和错误表示歉意;不想遗漏任何内容)

这是 CustomersScene.fxml:


<?xml version="1.0" encoding="UTF-8"?>


<?import javafx.scene.control.Button?>

<?import javafx.scene.control.Label?>

<?import javafx.scene.control.TableColumn?>

<?import javafx.scene.control.TableView?>

<?import javafx.scene.layout.AnchorPane?>

<?import javafx.scene.layout.HBox?>

<?import javafx.scene.layout.VBox?>

<?import javafx.scene.text.Font?>


<AnchorPane id="AnchorPane" prefHeight="591.0" prefWidth="475.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="c195.CustomersSceneController">

   <children>

      <VBox layoutY="51.0" prefHeight="541.0" prefWidth="500.0">

         <children>

            <TableView fx:id="customerTableView" prefHeight="470.0" prefWidth="500.0">

              <columns>

                <TableColumn fx:id="customerTableNameTableColumn" prefWidth="75.0" text="Name" />

                <TableColumn fx:id="customerTableAddressTableColumn" prefWidth="302.0" text="Address" />

                  <TableColumn fx:id="customerTablePhoneNumberTableColumn" minWidth="0.0" prefWidth="122.0" text="Phone Number" />

              </columns>

            </TableView>

            <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="100.0">

               <children>

                  <Button fx:id="addCustomerButton" mnemonicParsing="false" onAction="#addCustomerButtonPushed" prefHeight="30.0" prefWidth="60.0" text="Add" />

                  <Button fx:id="modifyCustomerButton" mnemonicParsing="false" onAction="#modifyCustomerButtonPushed" prefHeight="30.0" prefWidth="60.0" text="Modify" />

                  <Button fx:id="deleteCustomerButton" mnemonicParsing="false" onAction="#deleteCustomerButtonPushed" prefHeight="30.0" prefWidth="60.0" text="Delete" />

               </children>

该错误表明它找不到事件处理程序。我不知道为什么,因为我已将 @FXML 附加到该函数。我还尝试将函数公开(fxml 文档仍然建议这两个函数,该文档在第 27 行显示错误 - > #deleteCustomerButtonPushed) 我已检查所有导入语句以确保使用 JavaFX 版本。



潇潇雨雨
浏览 125回答 3
3回答

开满天机

您收到的 IncationTargetException 意味着系统正在尝试查找特定方法,但无法找到合适的候选方法。正如错误所示:“事件处理程序不在命名空间中”。问题来自于你的方法的签名:@FXML private void deleteCustomerButtonPushed(Customer customer) {&nbsp; &nbsp; //...}参数应该像ActionEvent其他方法一样,而不是Customer.@FXML private void deleteCustomerButtonPushed(ActionEvent e) {&nbsp; &nbsp; &nbsp;//...&nbsp; &nbsp;}

眼眸繁星

也可能是由于使用import&nbsp;java.awt.event.ActionEvent;代替import&nbsp;javafx.event.ActionEvent;

叮当猫咪

我收到此错误的原因是我错过了@FXML方法声明是这样的private&nbsp;void&nbsp;onCheckboxToggle(ActionEvent&nbsp;event)&nbsp;{添加了@FXML@FXML private&nbsp;void&nbsp;onCheckboxToggle(ActionEvent&nbsp;event)&nbsp;{我的自定义组件(没什么特别的):<CheckBox&nbsp;fx:id="completed"&nbsp;onAction="#onCheckboxToggle"&nbsp;/>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java