Сообщение метки javafx, показывающее с таймером, не работает - PullRequest
0 голосов
/ 17 февраля 2020

Поэтому я пытаюсь показать сообщение в javafx на ярлыке, а затем сделать его исчезающим через 1 секунду. Я могу показать сообщение по желанию, но я не могу заставить его исчезнуть. На самом деле моя проблема в том, что я никогда не появляюсь. Так что, если я использую только это:

lbReserva.setText("RESERVA REALITZADA");

Работает, как и ожидалось, но, очевидно, это просто так. Итак, я попробовал это:

        try {
        lbReserva.setText("RESERVA REALITZADA");
        TimeUnit.SECONDS.sleep(1); 
        lbReserva.setText("");           
    } catch (InterruptedException e) {
        System.err.format("IOException: %s%n", e);
    }

Но тогда этикетка просто не появляется. Я попытался поместить первый установленный текст снаружи прямо перед блоком try. Я попытался разместить второй набор текста сразу после улова. В любом случае я получил тот же результат, этикетка никогда не появляется, или, возможно, появляется и сразу исчезает. Любые подсказки, что я делаю не так? заранее большое спасибо.

pd: я пытался использовать Thread.sleep вместо TimeUnit, но получил тот же результат.

1 Ответ

1 голос
/ 18 февраля 2020

Использование PauseTransition.

import javafx.animation.PauseTransition;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.Duration;

public class TestingGround extends Application
{
    @Override
    public void start(Stage stage) throws Exception
    {
        Label label = new Label("Hello World!");
        PauseTransition wait = new PauseTransition(Duration.seconds(1));
        wait.setOnFinished((e) -> {
            label.setVisible(false);
        });
        wait.play();
        VBox root = new VBox(label);
        stage.setScene(new Scene(root, 700, 500));
        stage.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }    
}

enter image description here

...