我正在尝试填补选择框,但出了点问题。 这是我的代码
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");
}
}
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>
程序运行正常,但我在选择框中输入的项目不会出现。
答案 0 :(得分:1)
这是因为
orderType=new ChoiceBox<>();
您永远不应初始化使用@FXML注释的字段。如果这样做,您的字段将不再引用FXML Loader(以及显示的那些)加载的字段。