gpt4 book ai didi

java - AlertType.CONFIRMATION 在 JavaFX 中抛出 IllegalArgumentException

转载 作者:行者123 更新时间:2023-11-30 06:14:14 24 4
gpt4 key购买 nike

每次用户尝试从 ListView 中删除项目时,我都会尝试添加确认类型的警报窗口。但每当我这样做时,一旦我按下按钮,就会抛出一个 IllegalArgumentException ,说明添加了重复的子项。代码如下:

@FXML
private void handleDeleteCaption() {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Delete Caption");
alert.setHeaderText("Are you sure you want to delete this caption?");
alert.setContentText("All its contents will be lost. Continue?");

alert.getButtonTypes().addAll(ButtonType.YES, ButtonType.CANCEL);

Optional<ButtonType> result = alert.showAndWait();
if(result.isPresent() && result.get() == ButtonType.YES) {
captionsList.getItems().remove(selectedCaption);
}
}

当我添加警告类型的警报时,也是同样的问题。它仅在我不指定警报类型时才起作用,即当我将其声明为 AlertType.NONE 时。我在这里遗漏了什么?

最佳答案

您可能会收到此异常,因为“取消”按钮已存在于“类型确认”中所以你可以这样做

alert.getButtonTypes().clear();

之前

alert.getButtonTypes().addAll(ButtonType.YES, ButtonType.CANCEL);

更好的方法(如评论中提到的 Slaw)是调用 setAll,而无需清除和重新添加

alert.getButtonTypes().setAll(ButtonType.YES, ButtonType.CANCEL)

关于java - AlertType.CONFIRMATION 在 JavaFX 中抛出 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49583048/

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