zoukankan      html  css  js  c++  java
  • java Filehandler

    简介

    最近的好像都没有手敲,只是看了一下。这个是文件管理的

    code

    /*
     * @Author: your name
     * @Date: 2020-11-08 15:30:36
     * @LastEditTime: 2020-11-08 15:33:06
     * @LastEditors: your name
     * @Description: In User Settings Edit
     * @FilePath: /java/fileChooser/FileChooserTest.java
     */
    package fileChooser;
    
    import java.awt.*;
    import javax.swing.*;
    
    /**
     * @version 1.26 2018-04-10
     * @author Cay Horstmann
     */
    public class FileChooserTest {
       public static void main(String[] args) {
          EventQueue.invokeLater(() -> {
             var frame = new ImageViewerFrame();
             frame.setTitle("FileChooserTest");
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             frame.setVisible(true);
          });
       }
    }
    
    
    package fileChooser;
    
    import java.io.*;
    import javax.swing.*;
    import javax.swing.filechooser.*;
    import javax.swing.filechooser.FileFilter;
    
    /**
     * A file view that displays an icon for all files that match a file filter.
     */
    public class FileIconView extends FileView {
       private FileFilter filter;
       private Icon icon;
    
       /**
        * Constructs a FileIconView.
        * 
        * @param aFilter     a file filter--all files that this filter accepts will be
        *                    shown with the icon.
        * @param anIcon--the icon shown with all accepted files.
        */
       public FileIconView(FileFilter aFilter, Icon anIcon) {
          filter = aFilter;
          icon = anIcon;
       }
    
       public Icon getIcon(File f) {
          if (!f.isDirectory() && filter.accept(f))
             return icon;
          else
             return null;
       }
    }
    
    
    package fileChooser;
    
    import java.awt.*;
    import java.io.*;
    
    import javax.swing.*;
    
    /**
     * A file chooser accessory that previews images.
     */
    public class ImagePreviewer extends JLabel {
       /**
        * Constructs an ImagePreviewer.
        * 
        * @param chooser the file chooser whose property changes trigger an image
        *                change in this previewer
        */
       public ImagePreviewer(JFileChooser chooser) {
          setPreferredSize(new Dimension(100, 100));
          setBorder(BorderFactory.createEtchedBorder());
    
          chooser.addPropertyChangeListener(event -> {
             if (event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) {
                // the user has selected a new file
                File f = (File) event.getNewValue();
                if (f == null) {
                   setIcon(null);
                   return;
                }
    
                // read the image into an icon
                var icon = new ImageIcon(f.getPath());
    
                // if the icon is too large to fit, scale it
                if (icon.getIconWidth() > getWidth())
                   icon = new ImageIcon(icon.getImage().getScaledInstance(getWidth(), -1, Image.SCALE_DEFAULT));
    
                setIcon(icon);
             }
          });
       }
    }
    
    
    /*
     * @Author: your name
     * @Date: 2020-11-08 15:30:36
     * @LastEditTime: 2020-11-08 15:33:14
     * @LastEditors: your name
     * @Description: In User Settings Edit
     * @FilePath: /java/fileChooser/ImageViewerFrame.java
     */
    package fileChooser;
    
    import java.io.*;
    
    import javax.swing.*;
    import javax.swing.filechooser.*;
    import javax.swing.filechooser.FileFilter;
    
    /**
     * A frame that has a menu for loading an image and a display area for the
     * loaded image.
     */
    public class ImageViewerFrame extends JFrame {
       private static final int DEFAULT_WIDTH = 300;
       private static final int DEFAULT_HEIGHT = 400;
       private JLabel label;
       private JFileChooser chooser;
    
       public ImageViewerFrame() {
          setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    
          // set up menu bar
          var menuBar = new JMenuBar();
          setJMenuBar(menuBar);
    
          var menu = new JMenu("File");
          menuBar.add(menu);
    
          var openItem = new JMenuItem("Open");
          menu.add(openItem);
          openItem.addActionListener(event -> {
             chooser.setCurrentDirectory(new File("."));
    
             // show file chooser dialog
             int result = chooser.showOpenDialog(ImageViewerFrame.this);
    
             // if image file accepted, set it as icon of the label
             if (result == JFileChooser.APPROVE_OPTION) {
                String name = chooser.getSelectedFile().getPath();
                label.setIcon(new ImageIcon(name));
                pack();
             }
          });
    
          var exitItem = new JMenuItem("Exit");
          menu.add(exitItem);
          exitItem.addActionListener(event -> System.exit(0));
    
          // use a label to display the images
          label = new JLabel();
          add(label);
    
          // set up file chooser
          chooser = new JFileChooser();
    
          // accept all image files ending with .jpg, .jpeg, .gif
          var filter = new FileNameExtensionFilter("Image files", "jpg", "jpeg", "gif");
          chooser.setFileFilter(filter);
    
          chooser.setAccessory(new ImagePreviewer(chooser));
    
          chooser.setFileView(new FileIconView(filter, new ImageIcon("palette.gif")));
       }
    }
    
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    微软软件下载
    FTP主动连接与被动连接
    Linux下grep显示前后几行信息
    cacti 安装过程中“ERROR: 您的MySQL TimeZone 数据库未被填充. 请在继续之前填入此数据库.”
    Cacti安装详细步骤
    Linux 踢掉其他终端用户
    迁移设备存储报的错误及解决方式
    sql_mode :(STRICT_TRANS_TABLES与STRICT_ALL_TABLES 区别)
    Nginx日志按日期切割详解(按天切割)
    git pull冲突:commit your changes or stash them before you can merge.
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13944525.html
Copyright © 2011-2022 走看看