coderodde
coderodde

Reputation: 977

How to change the text of yes/no buttons in JavaFX 8 Alert dialogs

I have this code snippet:

Alert alert = 
        new Alert(AlertType.WARNING, 
            "The format for dates is year.month.day. " +
            "For example, today is " + todayToString() + ".",
             ButtonType.OK, 
             ButtonType.CANCEL);
alert.setTitle("Date format warning");
Optional<ButtonType> result = alert.showAndWait();

if (result.get() == ButtonType.OK) {
    formatGotIt = true;
}

Above, I request two buttons titled "Yes" and "No." However, I wish to change them both.

Upvotes: 30

Views: 33300

Answers (2)

fabian
fabian

Reputation: 82461

You can define your own button types. In this example the buttons' text is foo and bar:

ButtonType foo = new ButtonType("foo", ButtonBar.ButtonData.OK_DONE);
ButtonType bar = new ButtonType("bar", ButtonBar.ButtonData.CANCEL_CLOSE);
Alert alert = new Alert(AlertType.WARNING,
        "The format for dates is year.month.day. "
        + "For example, today is " + todayToString() + ".",
        foo,
        bar);

alert.setTitle("Date format warning");
Optional<ButtonType> result = alert.showAndWait();

if (result.orElse(bar) == foo) {
    formatGotIt = true;
}

Upvotes: 55

Miss Chanandler Bong
Miss Chanandler Bong

Reputation: 4258

((Button) dialog.getDialogPane().lookupButton(ButtonType.OK)).setText("Not OK Anymore");
((Button) dialog.getDialogPane().lookupButton(ButtonType.CANCEL)).setText("Not Cancel Anymore");

Upvotes: 21

Related Questions