Слайд изображения в порядке revrse в мешке, используя javafx - PullRequest
0 голосов
/ 23 марта 2020

Мне нужны слайды изображений справа налево, затем они меняются слева направо с использованием представлений изображений JavaFX.

Мне нужны слайды этого типа:

enter image description here

Вот мой код, который не дает мне точных результатов. Он скользит слева направо.

Только. java:

package com.valid;

import javafx.animation.FadeTransition;
import javafx.animation.Interpolator;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.SequentialTransition;
import javafx.animation.Timeline;
import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class Only extends Application {
    class SimpleSlideShow {

        StackPane root = new StackPane();
        ImageView[] slides;

        public SimpleSlideShow() {
            this.slides = new ImageView[4];
            Image image1 = new Image(Only.class.getResource("res/Pic1.jpg").toExternalForm());
            Image image2 = new Image(Only.class.getResource("res/Pic2.jpeg").toExternalForm());
            Image image3 = new Image(Only.class.getResource("res/Pic3.jpeg").toExternalForm());
            Image image4 = new Image(Only.class.getResource("res/Pic4.jpeg").toExternalForm());
            slides[0] = new ImageView(image1);
            slides[1] = new ImageView(image2);
            slides[2] = new ImageView(image3);
            slides[3] = new ImageView(image4);

        }

        public StackPane getRoot() {
            return root;
        }

        public ImageView[] getImageView() {
            return slides;
        }

        /*public void start() {

            this.root.getChildren().add(slides[0]);
            // slide.setOpacity(0);
            Timeline timeline = new Timeline();
//          TranslateTransition tts= new TranslateTransition(Duration.millis(3000));
            slides[0].translateXProperty().set(-1*root.getWidth());
            KeyValue kv = new KeyValue(slides[0].translateXProperty(), 0, Interpolator.EASE_IN);
            KeyFrame kf = new KeyFrame(Duration.seconds(2), kv);
            timeline.getKeyFrames().add(kf);
            timeline.setAutoReverse(true);
            timeline.setOnFinished(t -> {
                this.root.getChildren().addAll(slides[1],slides[2],slides[3]);
            });
            timeline.play();
        }*/
        public void leftToRight(){
            this.root.getChildren().add(slides[0]);
            // slide.setOpacity(0);
            Timeline timeline = new Timeline();
//          TranslateTransition tts= new TranslateTransition(Duration.millis(3000));
            KeyValue kv = new KeyValue(slides[0].translateXProperty(), 0, Interpolator.EASE_IN);
            slides[0].translateXProperty().set(-1*root.getWidth());
            KeyFrame kf = new KeyFrame(Duration.seconds(2), kv);
            timeline.getKeyFrames().add(kf);
            timeline.setAutoReverse(true);
            timeline.setOnFinished(t -> {
                this.root.getChildren().addAll(slides[1]);
            });
            timeline.play();
            /*SequentialTransition st = new SequentialTransition();
            for (ImageView sl : slides) {
                this.root.getChildren().add(slides[0]);
                slides[0].translateXProperty().add(root.getScene().getHeight());*/

            }
        }
        }

        /*public FadeTransition getFadeTransition(ImageView imageView, double fromValue, double toValue,
                int durationInMilliseconds) {
            // SequentialTransition slide = new SequentialTransition();
            // slide.setCycleCount(2);
            // slide.autoReverseProperty();
            // slide.setAutoReverse(true);
            FadeTransition ft = new FadeTransition(Duration.seconds(3), imageView);
            ft.setFromValue(fromValue);
            ft.setToValue(toValue);
            return ft;

        }

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

    @Override
    public void start(Stage primaryStage) throws Exception {
        SimpleSlideShow simpleSlideShow = new SimpleSlideShow();
        Scene scene = new Scene(simpleSlideShow.getRoot());

        primaryStage.setScene(scene);
        primaryStage.setMaximized(true);
        primaryStage.show();
        simpleSlideShow.getImageView()[0].translateXProperty().set(scene.getWidth());
        //simpleSlideShow.start();
        simpleSlideShow.leftToRight();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...