gpt4 book ai didi

JavaFX8 FXML Controller 初始化方法未调用

转载 作者:行者123 更新时间:2023-12-02 12:49:38 25 4
gpt4 key购买 nike

我正在尝试填写选择框,但出了点问题。这是我的代码

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>

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

最佳答案

这是因为

orderType=new ChoiceBox<>();

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

关于JavaFX8 FXML Controller 初始化方法未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44649932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com