zoukankan      html  css  js  c++  java
  • javaFx 简易图片查看器V1

    功能说明

    1.查看在输入框内输入文件夹路径,通过点击next来查看文件夹下的.jpg图片

    package sample;
    
    import javafx.application.Application;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.Label;
    import javafx.scene.control.TextArea;
    import javafx.scene.control.TextField;
    import javafx.scene.image.Image;
    import javafx.scene.image.ImageView;
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.VBox;
    import javafx.scene.text.Text;
    import javafx.stage.Stage;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FilenameFilter;
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    /**
     * @author lq
     * 创建时间 2019/4/12 0:46
     **/
    public class MyImage extends Application {
        ImageView imageView  = new ImageView();
        public static void main(String[] args) {
            launch(args);
        }
        @Override
        public void start(Stage primaryStage) throws Exception {
            TextField  inputText = new TextField("C:/Users/lq/Pictures/ps");
            //button
            Button nextBtn = new Button("NEXT");
            Label pathLab = new Label("file Paht ");
    
            imageView.setFitHeight(300);
            imageView.setFitWidth(300);
            final List<String> images = new ArrayList<>();
    
            //计数器
            int[] clickCount = {0};
    
            nextBtn.setOnAction(new EventHandler<ActionEvent>() {
                @Override
                public void handle(ActionEvent event) {
                    String parentPath = inputText.getText();
    
                    if(images.size()==0){
                        System.out.println(parentPath);
                        try {
                            //初始化图片列表
                            String[] imageNames = getImageNames(parentPath);
                            for(String imageName : imageNames){
                                images.add(imageName);
                            }
                        } catch (URISyntaxException e) {
                            e.printStackTrace();
                        }
                    }
                    String imagePath = parentPath+"/"+images.get(clickCount[0]%images.size());
                    try {
                        initImageView(imagePath);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    clickCount[0] = clickCount[0]+1;
                    pathLab.setText(imagePath);
                }
            });
    
            VBox vbox = new VBox(inputText,nextBtn,pathLab,imageView);
            vbox.setMaxSize(500,500);
            vbox.setMinSize(400,400);
            Scene scene = new Scene(vbox);
            primaryStage.setTitle("简易图片查看器");
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    
    
        public ImageView initImageView(String imagePath) throws IOException {
            FileInputStream fileInputStream = new FileInputStream(imagePath);
            Image image = new Image(fileInputStream);
    
            imageView.setImage(image);
            fileInputStream.close();
            return imageView;
        }
        /**
         * 获取父路径
         * @param parentPath
         * @return
         */
        public String[] getImageNames(String parentPath) throws URISyntaxException {
            File parentDir = new File(parentPath);
            String[] pngs = parentDir.list(new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    if (name.endsWith("jpg")) {
                        System.out.println(name);
                        return true;
                    }
                    return false;
                }
            });
            System.out.println(pngs.length);
            return pngs;
        }
    
    
    }
    
    
  • 相关阅读:
    ubuntu16.04截图工具Shutter安装,设置快捷键
    cd命令和roscd命令的区别,并解决环境变量问题
    ubuntu16.04+kinetic 环境下进行turtlebot2安装+gazebo7.16
    【转载】windows 下TexLive的安装和配置
    Linux 环境变量 /etc/profile 和 ~/.bashrc的区别和使用
    rotors无人机仿真(古月居)——问题记录
    操作select
    #if DEBUG
    (网上看的)asp.net使用uploadify上传出现的IO Error问题
    sqlserver2008附加sqlserver2005数据库目录出错,需要设置mdf后缀文件夹“管理员取得所有权”,并用windows管理权限登录数据库不要用sa
  • 原文地址:https://www.cnblogs.com/mumian2/p/10703847.html
Copyright © 2011-2022 走看看