我创建了一个名为ChoiceBox
的{{1}}对象。我将以下代码添加到我的控制器类中:
backgroundChoiceBox
在initialize方法中,我添加了以下两行代码:
@FXML
private ChoiceBox<String> backgroundChoiceBox = new ChoiceBox<>();
当我运行程序时,会出现选择框,没有错误发送到控制台。但是,当我点击选择框时,我收到以下错误。
backgroundChoiceBox.getItems().addAll("Trees", "Mountains");
backgroundChoiceBox.setValue("Trees");
我对树木和山脉的选项仍然显示并允许我点击它们,但它会导致出现相同的错误序列。如果有人能帮助解释为什么会发生这种情况会很棒!提前致谢
答案 0 :(得分:0)
你ChoiceBox
的初始化应由你的FXML文件处理。
例如:
<ChoiceBox fx:id="backgroundChoiceBox" value="Trees">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Trees" />
<String fx:value="Mountains" />
</FXCollections>
</items>
</ChoiceBox>
您目前正在初始化ChoiceBox
两次。一旦进入FXML文件,一次进入控制器。
从控制器类中删除= new ChoiceBox<>();
并删除相应的
backgroundChoiceBox.getItems().addAll("Trees", "Mountains");
backgroundChoiceBox.setValue("Trees");
来自初始化方法。之后,您的choiceAction
方法应该无异常地工作。