JavaFX исчезают сцена и близко
У меня возникли трудности выяснить, если это вообще возможно. Общее поведение, которого хочет большинство людей, - это исчезновение расширения node
, которое полностью возможно через FadeTransition
Однако я пытаюсь затухнуть весь этап, поэтому представьте, что вы закрываете запущенную программу и вместо того, чтобы просто убить окна (т. е. показывать -> не показывать), я хотел бы, чтобы окно (stage
) исчезло в течение 2 секунд, как тост или уведомление.
1 ответ:
Создайте временную шкалу с ключевым кадром, который изменяет непрозрачность корневого узла сцены сцены. Кроме того, убедитесь, что стиль сцены и заливка сцены прозрачны. Затем завершите работу программы, как только временная шкала будет завершена.
Ниже представлено приложение с одной большой кнопкой, которая при нажатии на нее будет исчезать в течение 2 секунд, а затем программа закроется.
public class StageFadeExample extends Application { @Override public void start(Stage arg0) throws Exception { Stage stage = new Stage(); stage.initStyle(StageStyle.TRANSPARENT); //Removes window decorations Button close = new Button("Fade away"); close.setOnAction((actionEvent) -> { Timeline timeline = new Timeline(); KeyFrame key = new KeyFrame(Duration.millis(2000), new KeyValue (stage.getScene().getRoot().opacityProperty(), 0)); timeline.getKeyFrames().add(key); timeline.setOnFinished((ae) -> System.exit(1)); timeline.play(); }); Scene scene = new Scene(close, 300, 300); scene.setFill(Color.TRANSPARENT); //Makes scene background transparent stage.setScene(scene); stage.show(); } public static void main (String[] args) { launch(); } }