如何使用ImageView创建Javafx图像滑块

如何使用ImageView创建Javafx图像滑块,java,javafx,javafx-8,Java,Javafx,Javafx 8,我想创建一个图像滑块。我有图像视图和静态图像。我怎样才能随着转换而淡出,同时更改图像。请使用我下面简单的图像滑块代码,带按钮或不带按钮。 import java.util.ArrayList; import java.util.List; import javafx.application.Application; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Cursor; i

我想创建一个图像滑块。我有图像视图和静态图像。我怎样才能随着转换而淡出,同时更改图像。

请使用我下面简单的图像滑块代码,带按钮或不带按钮。

import java.util.ArrayList;
import java.util.List;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Cursor;
import javafx.scene.control.Button;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class ImageSliderDemo extends Application {

    private List<String> list = new ArrayList<String>();
    int j = 0;
    double orgCliskSceneX, orgReleaseSceneX;
    Button lbutton, rButton;
    ImageView imageView;

@Override
public void start(Stage primaryStage) {
    // images in src folder.
    try {
        list.add("/1.jpg");
        list.add("/1.png");
        list.add("/12.png");
        list.add("/13.png");
        list.add("/2.jpg");
        list.add("/2.png");
        list.add("/3.jpg");
        list.add("/4.png");
        list.add("/a.jpg");
        list.add("/Logo.png");

        GridPane root = new GridPane();
        root.setAlignment(Pos.CENTER);

        lbutton = new Button("<");
        rButton = new Button(">");

        Image images[] = new Image[list.size()];
        for (int i = 0; i < list.size(); i++) {
            images[i] = new Image(list.get(i));
        }

        imageView = new ImageView(images[j]);
        imageView.setCursor(Cursor.CLOSED_HAND);

        imageView.setOnMousePressed(circleOnMousePressedEventHandler);

        imageView.setOnMouseReleased(e -> {
            orgReleaseSceneX = e.getSceneX();
            if (orgCliskSceneX > orgReleaseSceneX) {
                lbutton.fire();
            } else {
                rButton.fire();
            }
        });

        rButton.setOnAction(e -> {
            j = j + 1;
            if (j == list.size()) {
                j = 0;
            }
            imageView.setImage(images[j]);

        });
        lbutton.setOnAction(e -> {
            j = j - 1;
            if (j == 0 || j > list.size() + 1 || j == -1) {
                j = list.size() - 1;
            }
            imageView.setImage(images[j]);

        });

        imageView.setFitHeight(100);
        imageView.setFitWidth(300);

        HBox hBox = new HBox();
        hBox.setSpacing(15);
        hBox.setAlignment(Pos.CENTER);
        // hBox.getChildren().addAll(lbutton, imageView, rButton);
        hBox.getChildren().addAll(imageView);

        root.add(hBox, 1, 1);
        Scene scene = new Scene(root, 800, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

EventHandler<MouseEvent> circleOnMousePressedEventHandler = new EventHandler<MouseEvent>() {

    @Override
    public void handle(MouseEvent t) {
        orgCliskSceneX = t.getSceneX();
    }
};

public static void main(String[] args) {
    launch(args);
}
}
import java.util.ArrayList;
导入java.util.List;
导入javafx.application.application;
导入javafx.event.EventHandler;
导入javafx.geometry.Pos;
导入javafx.scene.Cursor;
导入javafx.scene.control.Button;
导入javafx.scene.control.Button;
导入javafx.scene.image.ImageView;
导入javafx.scene.image.ImageView;
导入javafx.scene.input.MouseEvent;
导入javafx.scene.layout.GridPane;
导入javafx.scene.layout.HBox;
导入javafx.stage.stage;
公共类ImageSliderDemo扩展了应用程序{
私有列表=新的ArrayList();
int j=0;
双orgCliskSceneX,orgReleaseSceneX;
按钮L按钮,RB按钮;
图像视图图像视图;
@凌驾
公共无效开始(阶段primaryStage){
//src文件夹中的图像。
试一试{
添加(“/1.jpg”);
list.add(“/1.png”);
list.add(“/12.png”);
list.add(“/13.png”);
添加(“/2.jpg”);
list.add(“/2.png”);
添加(“/3.jpg”);
list.add(“/4.png”);
列表。添加(“/a.jpg”);
添加(“/Logo.png”);
GridPane root=新的GridPane();
根部设置对齐(位置中心);
lbutton=新按钮(“”);
图像图像[]=新图像[list.size()];
对于(int i=0;i{
orgReleaseSceneX=e.getSceneX();
如果(orgCliskSceneX>orgReleaseSceneX){
lbutton.fire();
}否则{
rButton.fire();
}
});
rButton.setOnAction(e->{
j=j+1;
如果(j==list.size()){
j=0;
}
setImage(images[j]);
});
lbutton.setOnAction(e->{
j=j-1;
如果(j==0 | | j>list.size()+1 | | j==1){
j=list.size()-1;
}
setImage(images[j]);
});
imageView.setFitHeight(100);
imageView.setFitWidth(300);
HBox HBox=新的HBox();
hBox.setspace(15);
hBox.设置校准(位置中心);
//hBox.getChildren().addAll(lbutton、imageView、rButton);
hBox.getChildren().addAll(imageView);
添加(hBox,1,1);
场景=新场景(根,800300);
初级阶段。场景(场景);
primaryStage.show();
}捕获(例外e){
e、 printStackTrace();
}
}
EventHandler circleOnMousePressedEventHandler=新的EventHandler(){
@凌驾
公共无效句柄(MouseEvent t){
orgCliskSceneX=t.getSceneX();
}
};
公共静态void main(字符串[]args){
发射(args);
}
}

请使用我下面简单的带按钮或不带按钮的图像滑块代码。

import java.util.ArrayList;
import java.util.List;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Cursor;
import javafx.scene.control.Button;
import javafx.scene.control.Button;
import javafx.scene.image.ImageView;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class ImageSliderDemo extends Application {

    private List<String> list = new ArrayList<String>();
    int j = 0;
    double orgCliskSceneX, orgReleaseSceneX;
    Button lbutton, rButton;
    ImageView imageView;

@Override
public void start(Stage primaryStage) {
    // images in src folder.
    try {
        list.add("/1.jpg");
        list.add("/1.png");
        list.add("/12.png");
        list.add("/13.png");
        list.add("/2.jpg");
        list.add("/2.png");
        list.add("/3.jpg");
        list.add("/4.png");
        list.add("/a.jpg");
        list.add("/Logo.png");

        GridPane root = new GridPane();
        root.setAlignment(Pos.CENTER);

        lbutton = new Button("<");
        rButton = new Button(">");

        Image images[] = new Image[list.size()];
        for (int i = 0; i < list.size(); i++) {
            images[i] = new Image(list.get(i));
        }

        imageView = new ImageView(images[j]);
        imageView.setCursor(Cursor.CLOSED_HAND);

        imageView.setOnMousePressed(circleOnMousePressedEventHandler);

        imageView.setOnMouseReleased(e -> {
            orgReleaseSceneX = e.getSceneX();
            if (orgCliskSceneX > orgReleaseSceneX) {
                lbutton.fire();
            } else {
                rButton.fire();
            }
        });

        rButton.setOnAction(e -> {
            j = j + 1;
            if (j == list.size()) {
                j = 0;
            }
            imageView.setImage(images[j]);

        });
        lbutton.setOnAction(e -> {
            j = j - 1;
            if (j == 0 || j > list.size() + 1 || j == -1) {
                j = list.size() - 1;
            }
            imageView.setImage(images[j]);

        });

        imageView.setFitHeight(100);
        imageView.setFitWidth(300);

        HBox hBox = new HBox();
        hBox.setSpacing(15);
        hBox.setAlignment(Pos.CENTER);
        // hBox.getChildren().addAll(lbutton, imageView, rButton);
        hBox.getChildren().addAll(imageView);

        root.add(hBox, 1, 1);
        Scene scene = new Scene(root, 800, 300);
        primaryStage.setScene(scene);
        primaryStage.show();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

EventHandler<MouseEvent> circleOnMousePressedEventHandler = new EventHandler<MouseEvent>() {

    @Override
    public void handle(MouseEvent t) {
        orgCliskSceneX = t.getSceneX();
    }
};

public static void main(String[] args) {
    launch(args);
}
}
import java.util.ArrayList;
导入java.util.List;
导入javafx.application.application;
导入javafx.event.EventHandler;
导入javafx.geometry.Pos;
导入javafx.scene.Cursor;
导入javafx.scene.control.Button;
导入javafx.scene.control.Button;
导入javafx.scene.image.ImageView;
导入javafx.scene.image.ImageView;
导入javafx.scene.input.MouseEvent;
导入javafx.scene.layout.GridPane;
导入javafx.scene.layout.HBox;
导入javafx.stage.stage;
公共类ImageSliderDemo扩展了应用程序{
私有列表=新的ArrayList();
int j=0;
双orgCliskSceneX,orgReleaseSceneX;
按钮L按钮,RB按钮;
图像视图图像视图;
@凌驾
公共无效开始(阶段primaryStage){
//src文件夹中的图像。
试一试{
添加(“/1.jpg”);
list.add(“/1.png”);
list.add(“/12.png”);
list.add(“/13.png”);
添加(“/2.jpg”);
list.add(“/2.png”);
添加(“/3.jpg”);
list.add(“/4.png”);
列表。添加(“/a.jpg”);
添加(“/Logo.png”);
GridPane root=新的GridPane();
根部设置对齐(位置中心);
lbutton=新按钮(“”);
图像图像[]=新图像[list.size()];
对于(int i=0;i{
orgReleaseSceneX=e.getSceneX();
如果(orgCliskSceneX>orgReleaseSceneX){
lbutton.fire();
}否则{
rButton.fire();
}
});
rButton.setOnAction(e->{
j=j+1;
如果(j==list.size()){
j=0;
}
setImage(images[j]);
});
lbutton.setOnAction(e->{
j=j-1;
如果(j==0 | | j>list.size()+1 | | j==1){
j=list.size()-1;
}
setImage(images[j]);
});
imageView.setFitHeight(100);
imageView.setFitWidth(300);
HBox HBox=新的HBox();
hBox.setspace(15);
hBox.设置校准(位置中心);
//hBox.getChildren().addAll(lbutton、imageView、rButton);
hBox.getChildren().addAll(imageView);
添加(hBox,1,1);
场景=新场景(根,800300);
初级阶段。场景(场景);
primaryStage.show();
}捕获(例外e){
e、 printStackTrace();
}
}
EventHandler circleOnMousePressedEventHandler=新事件