带有附加按钮的 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
);
我需要一个带有 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
);