您可以从alert实例窃取DialogPane,并将其添加到常规Stage。一个节点一次只能是一个场景的根,因此您需要首先替换警报场景的根:
public class alertWithIconextends Application { @Override public void start(Stage stage) { alert alert = new alert(alert.alertType./confirm/iATION, "Are you sure you want to delete this item?", ButtonType.YES, ButtonType.NO); alert.setHeaderText("Delete Item"); DialogPane pane = alert.getDialogPane(); ObjectProperty<ButtonType> result = new SimpleObjectProperty<>(); for (ButtonType type : pane.getButtonTypes()) { ButtonType resultValue = type; ((Button) pane.lookupButton(type)).setonAction(e -> { result.set(resultValue); pane.getScene().getWindow().hide(); }); } pane.getScene().setRoot(new Label()); Scene scene = new Scene(pane); Stage dialog = new Stage(); dialog.setScene(scene); dialog.setTitle("Delete Item"); dialog.getIcons().add(new Image("GenericApp.png")); result.set(null); dialog.showAndWait(); System.out.println("Result is " + result); }}


