ฉันกำลังเรียนรู้ javaFX และปัญหาของฉันคือฉันมีหน้าต่างธรรมดาที่มีกล่องตัวเลือกและปุ่ม หน้าต่างนี้ถูกกำหนดผ่าน FXML ซึ่งเชื่อมโยงกับคลาสคอนโทรลเลอร์ด้วย ฉันต้องการทราบวิธีการเติมข้อมูลในช่องตัวเลือกนี้ด้วยข้อมูลในคลาสคอนโทรลเลอร์เนื่องจากการใช้ @FXML อ้างอิงถึงช่องตัวเลือกนี้จะทำให้NullpointerEception
แก้ไข - เพิ่มซอร์สโค้ด โค้ด FXML
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="240.0"
prefWidth="320.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="supermarket.ManageWindowCC">
<children>
<ChoiceBox fx:id="countChoiceBox" layoutX="44.0" layoutY="71.0" prefHeight="25.0" prefWidth="191.0"/>
<Label layoutX="44.0" layoutY="54.0" text="To change item's count, choose one"/>
<TextField layoutX="140.0" layoutY="129.0" prefHeight="25.0" prefWidth="24.0"/>
<Label layoutX="123.0" layoutY="112.0" text="New count"/>
<Button layoutX="126.1875" layoutY="171.5" mnemonicParsing="false" text="Submit"/>
</children>
Java controller code:
public class ManageWindowCC {
@FXML
private ChoiceBox countChoiceBox;
public void onChangeCountClick(ActionEvent actionEvent) {
try {
Parent root = FXMLLoader.load(getClass().getResource("ChangeCount.fxml"));
Stage newStage = new Stage();
newStage.setTitle("Change item's count");
newStage.setScene(new Scene(root, 320, 240));
newStage.show();
countChoiceBox = new ChoiceBox();
countChoiceBox.setItems(FXCollections.observableArrayList("One","Two","Three"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
ขอบคุณสำหรับความช่วยเหลือและเวลาของคุณ