带有附加按钮的 JavaFX 警报

JavaFX alert with aditional buttons

我需要一个带有 2 个按钮的警报:是和否。我创建了警报:

alert.getDialogPane().getButtonTypes().clear();
ButtonType yesButtonType = new ButtonType("Yes", ButtonBar.ButtonData.YES);
ButtonType noButtonType = new ButtonType("No", ButtonBar.ButtonData.NO);
alert.getDialogPane().getButtonTypes().add(yesButtonType);
alert.getDialogPane().getButtonTypes().add(noButtonType);

Optional<ButtonType> result = alert.showAndWait();

但是当我尝试处理每个按钮的操作时:

if (result.isPresent() && result.get() == ButtonType.YES) {
    System.out.println("OK");
}

没用。知道为什么吗?

==是实例对比,而你是新建实例,所以对比失败。

不创建新的按钮类型,而是重用现有的预定义类型:

alert.getDialogPane().getButtonTypes().setAll(
    ButtonType.YES, 
    ButtonType.NO
);