我想制作一个带有动画文本的通知窗口。单击按钮即可发送通知,并且动画将开始播放。我的问题是,当我在上一个动画完成之前再次单击按钮时,会同时执行两个动画。如何使“sendMessage()”的每个方法调用等待另一个方法完成?如果它有任何意义的话,我的程序中有多个节点调用 sendMessage() 方法,这与我的 MRE 不同,所以我想要某种带有消息的队列。这是我的 MRE:
public class AnimationTest extends Application {
private final Label messageLabel = new Label();
@Override
public void start(Stage stage) throws IOException {
VBox vBox = new VBox();
vBox.setAlignment(Pos.CENTER);
Scene scene = new Scene(vBox, 320, 240);
vBox.getChildren().add(messageLabel);
Button button = new Button();
button.setOnAction(event -> sendMessage("Some animated text."));
vBox.getChildren().add(button);
stage.setScene(scene);
stage.show();
}
private void sendMessage(String message) {
final IntegerProperty i = new SimpleIntegerProperty(0);
Timeline timeline = new Timeline();
KeyFrame keyFrame = new KeyFrame(
Duration.millis(40),
event -> { …Run Code Online (Sandbox Code Playgroud)