i'm trying to fill choice Box but something went wrong. here is my code
Related part of 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>
the program runs correctly but the items i put in choice box doesn't appear.
It's because of
orderType=new ChoiceBox<>();
You should never intialize fields annoted with @FXML. If you do that your fields will no longer be referencing the ones loaded by the FXML Loader (and the ones who are displayed).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.