当前位置: 首页 > 知识库问答 >
问题:

“在fxml控制器类中找不到该ID的可注入字段”

壤驷瑾瑜
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" stylesheets="@../../common/gui/common_style.css" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="vehicles.logic.addVehicle">
   <children>
      <Text fill="WHITE" layoutX="304.0" layoutY="263.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Registration Number">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="305.0" layoutY="162.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Model">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="307.0" layoutY="215.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Make">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="306.0" layoutY="314.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Engine Size">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="307.0" layoutY="363.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Fuel Type">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="308.0" layoutY="415.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Colour">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="306.0" layoutY="472.0" strokeType="OUTSIDE" strokeWidth="0.0" text="MOT Renewal Date">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="307.0" layoutY="536.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Last Service Date">
         <font>
            <Font size="19.0" />
         </font></Text>
      <Text fill="WHITE" layoutX="309.0" layoutY="597.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Current Mileage">
         <font>
            <Font size="19.0" />
         </font></Text>
      <TextField fx:id="model" layoutX="538.0" layoutY="142.0" prefHeight="25.0" prefWidth="170.0" />
      <TextField fx:id="make" layoutX="539.0" layoutY="195.0" prefHeight="25.0" prefWidth="170.0" />
      <TextField fx:id="regnum" layoutX="540.0" layoutY="244.0" prefHeight="25.0" prefWidth="170.0" />
      <TextField fx:id="engine" layoutX="539.0" layoutY="295.0" prefHeight="25.0" prefWidth="170.0" />
      <TextField fx:id="fueltype" layoutX="540.0" layoutY="344.0" prefHeight="25.0" prefWidth="170.0" />
      <TextField fx:id="colour" layoutX="540.0" layoutY="396.0" prefHeight="25.0" prefWidth="170.0" />
      <TextField fx:id="mileage" layoutX="540.0" layoutY="577.0" prefHeight="25.0" prefWidth="170.0" />
      <DatePicker fx:id="motrenewal" layoutX="539.0" layoutY="453.0" />
      <DatePicker fx:id="servicedate" layoutX="541.0" layoutY="515.0" />
      <Button fx:id="add" layoutX="927.0" layoutY="604.0" mnemonicParsing="false" prefHeight="26.0" prefWidth="71.0" text="Add" />
      <Button fx:id="back" layoutX="820.0" layoutY="604.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="71.0" text="Back" />
      <Text fill="WHITE" layoutX="527.0" layoutY="90.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Add Vehicle">
         <font>
            <Font size="43.0" />
         </font>
      </Text>
   </children>
</AnchorPane>
package vehicles.logic;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.DatePicker;
import javafx.scene.control.TextField;

/**
 * FXML Controller class
 *
 * @author ugonw
 */
public class addVehicle implements Initializable {

    @FXML
    private TextField model;
    @FXML
    private TextField make;
    @FXML
    private TextField regnum;
    @FXML
    private TextField engine;
    @FXML
    private TextField fueltype;
    @FXML
    private TextField colour;
    @FXML
    private TextField mileage;
    @FXML
    private DatePicker motrenewal;
    @FXML
    private DatePicker servicedate;
    @FXML
    private Button add;
    @FXML
    private Button back;

    /**
     * Initializes the controller class.
     */
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    

}

共有1个答案

蒋正平
2023-03-14

一个解决办法是在IDE中打开xml文件,然后手动将id名称添加到该文件中。因此,如果Scenebuilder没有为您这样做,并且对象涉及文本字段,那么标记将如下所示。

<TextField />

您应该向其添加fx:id=“your_id_name”,如下所示:

<TextField fx:id="userName" />

保存xml文件后,它应该像魅力一样工作。希望这能有所帮助。

 类似资料:
  • 是关于JavaFX的。当我想在Scene Builder中注入fx:id时,我会得到这样的警告: 在FXML控制器类中找不到id为'something'的可注入字段。 我想忽略它,并创建了一个函数,但它也不起作用。我创建了mainController类并将其添加到我的FXML文件中。以下是我的代码… MainController.java 我在我的旧项目中做了同样的事情,它们像一个魅力一样工作。但

  • 我已经使用scene builder设计了我的fxml。分页默认带有10页和页码按钮。我想根据我的场景更改这些默认内容。 这是我在我的控制器中所做的: 这是我的FXML: 但在运行应用程序时,我仍然会得到默认配置。我的代码有什么问题吗??提前谢谢。。。。

  • 如何解释文件与其对应的控制器类之间的关系

  • 我用JavaSE7安装了netbeans,javafx示例运行良好。在scenebuilder中,我可以为控制器中使用定义和注释的每个控件选择一个ID。然而,我喜欢我组织的项目。当我创建一个新包,并将我的FXML文件移动到那里时,(myapp/views),控制器将保持在它所在的根目录中- 我知道FXML中的“控制器类”,但是因为我没有移动我的控制器,所以不应该改变它。 更具体地说,当我的控制器和

  • 我的目录 我试图创建学校的Spring启动应用程序,列出书籍到一个HTML页面从数据库与控制器。 就我个人而言,我认为问题在于控制器由于某种原因无法找到模板。因为当我通过chrome导航到想要的模板时,它只在页面上显示“booklist”,其他什么都没有。 我尝试创建一个全新的项目,并将代码从其他文件复制到新文件中,但没有结果。 我的控制器类: 我的html模板: 波姆。xml文件: 应用属性文件