如何使用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=新事件