Im Grunde versuche ich etwas wie ein textbasiertes RPG mit JavaFX. Gerade jetzt, einen Text anzuzeigen, habe ich diese bekam:JavaFX warte auf Enter
final IntegerProperty i = new SimpleIntegerProperty(0);
Timeline timeline = new Timeline();
KeyFrame keyFrame = new KeyFrame(
Duration.millis(70),
event -> {
if (i.get() > info.getText().length()) {
timeline.stop();
} else {
text.setText(info.getText().substring(0, i.get()));
i.set(i.get() + 1);
}
});
timeline.getKeyFrames().add(keyFrame);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
timeline.setOnFinished(a -> {
hb_start.getChildren().clear();
hb_start.getChildren().addAll(start_left,start_right);
hb_start.setAlignment(Pos.CENTER);
});
Da die Länge der Animation auf der Größe des Textes abhängt, wird die Cyclecount auf unbestimmte gesetzt. Wenn ich nicht vermisse, dass die Animation einmal abgespielt wird und dann aufhört, würde ich es gerne haben, wenn du die Enter-Taste drückst (oder eine andere Taste, für die ich mich später entscheide), um timeline.stop();
zu rufen. Finde heraus, wie du jede Art von Listener hinzufügen kannst. Der Versuch, keyListener
zu implementieren scheint mit allen möglichen Sachen zu kommen, die ich nicht brauche, und es funktioniert auch nicht mit einer TextField
, und stattdessen will eine JTextField
, die in Ordnung sein könnte, außer dass ich keine Ahnung habe wie man alles mit Swing macht.
Momentan wird der Text in einer TextFlow
aus dem Text angezeigt. Ich nehme an, der Hörer würde zu der TextFlow
oder sogar der Szene selbst hinzugefügt werden, ehrlich gesagt bin ich ratlos, was zu tun ist. Es klingt einfach, aber ich kann es nicht herausfinden.