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

我试图填充选择框但出错了。 这里是我的代码Controller.java未启用JavaFX8 FXML控制器初始化方法

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>

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");

}

}

相关部分程序运行正常,但我把选择框中的项目不会出现。

回答:

这是因为

orderType=new ChoiceBox<>(); 

你不应该intialize领域与@FXML annoted。如果你这样做,你的字段将不再引用FXML加载器(以及显示的那些加载器)加载的字段。

以上是 未启用JavaFX8 FXML控制器初始化方法 的全部内容, 来源链接: utcz.com/qa/262948.html

回到顶部