简介

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

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")));
   }
}

posted on 2020-11-08 15:37  HDU李少帅  阅读(288)  评论(0)    收藏  举报