未调用JavaFX8 FXML控制器初始化方法

未调用JavaFX8 FXML控制器初始化方法,java,fxml,Java,Fxml,我正试着填满选择框,但出了点问题。 这是我的密码 Controller.java的相关部分 public class BookingController implements Initializable { @FXML private ChoiceBox<String> orderType; @Override public void initialize(URL url, ResourceBundle rb) { order

我正试着填满选择框,但出了点问题。 这是我的密码

Controller.java的相关部分

public class BookingController implements Initializable {

   @FXML
   private ChoiceBox<String> orderType;       
   @Override
   public void initialize(URL url, ResourceBundle rb) { 
        orderType=new ChoiceBox<>();
        orderType.getItems().add("LabShoot");
        orderType.getItems().add("SoftData");
        orderType.getItems().add("Booking");
    }    
}
公共类BookingController实现可初始化{
@FXML
私人选择框订单类型;
@凌驾
公共无效初始化(URL,ResourceBundle rb){
orderType=新的ChoiceBox();
orderType.getItems().add(“LabShoot”);
orderType.getItems().add(“SoftData”);
orderType.getItems()添加(“预订”);
}    
}
FXML.FXML

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

<AnchorPane id="AnchorPane" prefHeight="447.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Orders.BookingController">
   <children>
      <ChoiceBox fx:id="orderType" layoutX="225.0" layoutY="59.0" onContextMenuRequested="#value_Changed" prefWidth="150.0" />
      <DatePicker layoutX="116.0" layoutY="118.0" prefHeight="25.0" prefWidth="173.0" />
      <ChoiceBox layoutX="387.0" layoutY="118.0" prefHeight="25.0" prefWidth="173.0" />
      <ChoiceBox layoutX="119.0" layoutY="188.0" prefHeight="25.0" prefWidth="173.0" />
      <ChoiceBox layoutX="387.0" layoutY="188.0" prefHeight="25.0" prefWidth="173.0" />
      <TextField layoutX="119.0" layoutY="257.0" prefHeight="25.0" prefWidth="173.0" />
      <TextField layoutX="388.0" layoutY="257.0" prefHeight="25.0" prefWidth="173.0" />
      <TextField layoutX="119.0" layoutY="325.0" prefHeight="25.0" prefWidth="173.0" />
      <Button layoutX="387.0" layoutY="325.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="173.0" text="Add" />
      <Label layoutX="30.0" layoutY="122.0" prefHeight="17.0" prefWidth="42.0" text="Date:" />
      <Label layoutX="214.0" layoutY="14.0" text="Customer Name" textFill="#2807ff">
         <font>
            <Font size="24.0" />
         </font>
      </Label>
      <Label layoutX="336.0" layoutY="122.0" prefHeight="17.0" prefWidth="42.0" text="Time:" />
      <Label layoutX="22.0" layoutY="193.0" text="Booking Type:" />
      <Label layoutX="337.0" layoutY="192.0" text="Dealer:" />
      <Label layoutX="31.0" layoutY="329.0" prefHeight="17.0" prefWidth="42.0" text="Price:" />
      <Label layoutX="332.0" layoutY="261.0" text="Address:" />
      <Label layoutX="27.0" layoutY="261.0" text="Duration:" />
   </children>
</AnchorPane>

程序运行正常,但我放在选择框中的项目没有出现。

这是因为

orderType=new ChoiceBox<>();
orderType=new ChoiceBox();

永远不要初始化用@FXML注释的字段。如果这样做,您的字段将不再引用FXML加载程序加载的字段(以及显示的字段)。

我这样做了,但仍然存在相同的问题。我还想澄清一件事,我把
System.out.println(“调用”)在初始化方法中,但它也不打印。主要问题是initialize方法没有调用。