javafx
Dialoge
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