Suche…


Bemerkungen

In JavaFX 8 Update 40 wurden Dialoge hinzugefügt.

TextInputDialog

TextInputDialog ermöglicht die den Benutzer zur Eingabe ein einzelnes fragen String .

TextInputDialog dialog = new TextInputDialog("42");
dialog.setHeaderText("Input your favourite int.");
dialog.setTitle("Favourite number?");
dialog.setContentText("Your favourite int: ");

Optional<String> result = dialog.showAndWait();

String s = result.map(r -> {
    try {
        Integer n = Integer.valueOf(r);
        return MessageFormat.format("Nice! I like {0} too!", n);
    } catch (NumberFormatException ex) {
        return MessageFormat.format("Unfortunately \"{0}\" is not a int!", r);
    }
}).orElse("You really don't want to tell me, huh?");

System.out.println(s);

ChoiceDialog

ChoiceDialog ermöglicht es dem Benutzer, ein Element aus einer Liste von Optionen auszuwählen.

List<String> options = new ArrayList<>();
options.add("42");
options.add("9");
options.add("467829");
options.add("Other");

ChoiceDialog<String> dialog = new ChoiceDialog<>(options.get(0), options);
dialog.setHeaderText("Choose your favourite number.");
dialog.setTitle("Favourite number?");
dialog.setContentText("Your favourite number:");

Optional<String> choice = dialog.showAndWait();

String s = choice.map(c -> "Other".equals(c) ? 
              "Unfortunately your favourite number is not available!"
              : "Nice! I like " + c + " too!")
           .orElse("You really don't want to tell me, huh?");

System.out.println(s);

Warnen

Alert ist ein einfaches Popup, das eine Reihe von Schaltflächen anzeigt und je nach der Schaltfläche, auf die der Benutzer geklickt hat, ein Ergebnis angezeigt wird:

Beispiel

Dadurch kann der Benutzer entscheiden, ob er die Hauptstufe wirklich beenden möchte:

@Override
public void start(Stage primaryStage) {
    Scene scene = new Scene(new Group(), 100, 100);

    primaryStage.setOnCloseRequest(evt -> {
        // allow user to decide between yes and no
        Alert alert = new Alert(Alert.AlertType.CONFIRMATION, "Do you really want to close this application?", ButtonType.YES, ButtonType.NO);

        // clicking X also means no
        ButtonType result = alert.showAndWait().orElse(ButtonType.NO);
        
        if (ButtonType.NO.equals(result)) {
            // consume event i.e. ignore close request 
            evt.consume();
        }
    });
    primaryStage.setScene(scene);
    primaryStage.show();
}

Beachten Sie, dass der Schaltflächentext automatisch an das Locale angepasst wird.

Text für benutzerdefinierte Schaltflächen

Der in einer Schaltfläche angezeigte Text kann angepasst werden, indem ButtonType selbst eine ButtonType Instanz ButtonType :

ButtonType answer = new ButtonType("42");
ButtonType somethingElse = new ButtonType("54");

Alert alert = new Alert(Alert.AlertType.NONE, "What do you get when you multiply six by nine?", answer, somethingElse);
ButtonType result = alert.showAndWait().orElse(somethingElse);

Alert resultDialog = new Alert(Alert.AlertType.INFORMATION,
                               answer.equals(result) ? "Correct" : "wrong",
                               ButtonType.OK);

resultDialog.show();


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow