⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enhancedfiletester.java

📁 Java 图形界面入门实例
💻 JAVA
字号:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.HashMap;

import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;

public class EnhancedFileTester extends JPanel {
  class AnOvalIcon implements Icon {
    Color color;

    public AnOvalIcon(Color c) {
      color = c;
    }

    public void paintIcon(Component c, Graphics g, int x, int y) {
      g.setColor(color);
      g.fillOval(x, y, getIconWidth(), getIconHeight());
    }

    public int getIconWidth() {
      return 10;
    }

    public int getIconHeight() {
      return 15;
    }
  }

  public class IconView extends FileView {
    private HashMap hash = new HashMap();

    public IconView() {
      hash.put("htm", new AnOvalIcon(Color.RED));
      hash.put("html", new AnOvalIcon(Color.GREEN));
      hash.put("java", new AnOvalIcon(Color.BLUE));
    }

    public String getName(File f) {
      String s = f.getName();
      if (s.length() == 0) {
        s = f.getAbsolutePath();
      }
      return s;
    }

    public String getDescription(File f) {
      return f.getName();
    }

    public String getTypeDescription(File f) {
      return f.getAbsolutePath();
    }

    public Icon getIcon(File f) {
      String path = f.getAbsolutePath();
      int pos = path.lastIndexOf('.');
      if ((pos >= 0) &amp;&amp; (pos < (path.length() - 1))) {
        String ext = path.substring(pos + 1).toLowerCase();
        return (Icon) hash.get(ext);
      }
      return null;
    }

    public Boolean isTraversable(File file) {
      return (new Boolean(file.isDirectory()));
    }
  }

  public class ExtensionFilter extends FileFilter {
    private String extensions[];

    private String description;

    public ExtensionFilter(String description, String extension) {
      this(description, new String[] { extension });
    }

    public ExtensionFilter(String description, String extensions[]) {
      this.description = description;
      this.extensions = (String[]) extensions.clone();
    }

    public boolean accept(File file) {
      if (file.isDirectory()) {
        return true;
      }
      int count = extensions.length;
      String path = file.getAbsolutePath();
      for (int i = 0; i < count; i++) {
        String ext = extensions[i];
        if (path.endsWith(ext)
            &amp;&amp; (path.charAt(path.length() - ext.length()) == '.')) {
          return true;
        }
      }
      return false;
    }

    public String getDescription() {
      return (description == null ? extensions[0] : description);
    }
  }

  public EnhancedFileTester() {
    JButton jb = new JButton("Open File Viewer");
    add(jb);
    ActionListener listener = new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        JFileChooser chooser = new JFileChooser(".");
        FileFilter type1 = new ExtensionFilter("Java source", ".java");
        FileFilter type2 = new ExtensionFilter("Image files",
            new String[] { ".jpg", ".gif", "jpeg", "xbm" });
        FileFilter type3 = new ExtensionFilter("HTML files",
            new String[] { ".htm", ".html" });
        chooser.addChoosableFileFilter(type1);
        chooser.addChoosableFileFilter(type2);
        chooser.addChoosableFileFilter(type3);
        chooser.setFileFilter(type2); // Initial filter setting
        FileView view = new IconView();
        chooser.setFileView(view);
        int status = chooser.showOpenDialog(EnhancedFileTester.this);
        if (status == JFileChooser.APPROVE_OPTION) {
          File f = chooser.getSelectedFile();
          System.out.println(f);
        }
      }
    };
    jb.addActionListener(listener);
  }

  public static void main(String args[]) {
    JFrame f = new JFrame("Enhanced File Example");
    JPanel j = new EnhancedFileTester();
    f.getContentPane().add(j, BorderLayout.CENTER);
    f.setSize(300, 200);
    f.show();
  }
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -