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

📄 zfilechooser.java

📁 用Java写的报表.功能如下: 0.内建网络打印,网络预览功能! 1.文件操作。包括url 指定的文件。 2.全功能打印支持。包括打印预览。 3.Undo 和 redo。 4.合并单元格。 5.Cel
💻 JAVA
字号:
/*
/icons * put your module comment here
 * formatted with JxBeauty (c) johann.langhofer@nextra.at
 * from sun's tutor
 */
package ezcell;

import java.awt.*;
import java.awt.event.*;

import java.beans.*;

import java.io.*;

import javax.swing.*;
import javax.swing.filechooser.*;


/**
 * DOCUMENT ME!
 *
 * @version $Revision$
 * @author $author$
 */
public class ZFileChooser {
    private static ZFileChooser sharedInstance;
    static private String newline = "\n";
    public final static String jpeg = "jpeg";
    public final static String jpg = "jpg";
    public final static String gif = "gif";
    public final static String tiff = "tiff";
    public final static String tif = "tif";
    private JFileChooser fc;
    private File file;
    private int option;
    private Component owner;

    /**
     * Creates a new ZFileChooser object.
     *
     * @param owner DOCUMENT ME!
     */
    public ZFileChooser(Component owner) {
        fc = new JFileChooser();
        fc.addChoosableFileFilter(new ImageFilter());
        fc.setFileView(new ImageFileView());
        fc.setAccessory(new ImagePreview(fc));
        this.owner = owner;
        ZToolkit.moveCenter(owner, fc);
    }

    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public static String getExtension(File f) {
        String ext = null;
        String s = f.getName();
        int i = s.lastIndexOf('.');

        if ((i > 0) && (i < (s.length() - 1))) {
            ext = s.substring(i + 1).toLowerCase();
        }

        return ext;
    }

    static ZFileChooser getSharedInstance(Component owner) {
        if (sharedInstance == null) {
            sharedInstance = new ZFileChooser(owner);
        }

        return sharedInstance;
    }

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public int show() {
        option = JOptionPane.CANCEL_OPTION;

        int returnVal = fc.showDialog(owner, "OK");

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            file = fc.getSelectedFile();
            option = JOptionPane.OK_OPTION;
        }

        return option;
    }

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public File getSelectedFile() {
        return file;
    }
}

/**
 * DOCUMENT ME!
 *
 * @version $Revision$
 * @author $author$
 */
class ImagePreview extends JComponent implements PropertyChangeListener {
    ImageIcon thumbnail = null;
    File file = null;

    /**
     * Creates a new ImagePreview object.
     *
     * @param fc DOCUMENT ME!
     */
    public ImagePreview(JFileChooser fc) {
        setPreferredSize(new Dimension(100, 50));
        fc.addPropertyChangeListener(this);
    }

    /**
     * DOCUMENT ME!
     */
    public void loadImage() {
        if (file == null) {
            return;
        }

        ImageIcon tmpIcon = new ImageIcon(file.getPath());

        if (tmpIcon.getIconWidth() > 90) {
            thumbnail = new ImageIcon(tmpIcon.getImage()
                                             .getScaledInstance(90, -1,
                                                                Image.SCALE_DEFAULT));
        } else {
            thumbnail = tmpIcon;
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param e DOCUMENT ME!
     */
    public void propertyChange(PropertyChangeEvent e) {
        String prop = e.getPropertyName();

        if (prop.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) {
            file = (File) e.getNewValue();

            if (isShowing()) {
                loadImage();
                repaint();
            }
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param g DOCUMENT ME!
     */
    public void paintComponent(Graphics g) {
        if (thumbnail == null) {
            loadImage();
        }

        if (thumbnail != null) {
            int x = (getWidth() / 2) - (thumbnail.getIconWidth() / 2);
            int y = (getHeight() / 2) - (thumbnail.getIconHeight() / 2);

            if (y < 0) {
                y = 0;
            }

            if (x < 5) {
                x = 5;
            }

            thumbnail.paintIcon(this, g, x, y);
        }
    }
}

/**
 * DOCUMENT ME!
 *
 * @version $Revision$
 * @author $author$
 */
class ImageFilter extends javax.swing.filechooser.FileFilter {
    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        }

        String extension = ZFileChooser.getExtension(f);

        if (extension != null) {
            if (extension.equals(ZFileChooser.tiff) ||
                    extension.equals(ZFileChooser.tif) ||
                    extension.equals(ZFileChooser.gif) ||
                    extension.equals(ZFileChooser.jpeg) ||
                    extension.equals(ZFileChooser.jpg)) {
                return true;
            } else {
                return false;
            }
        }

        return false;
    }

    /**
     * DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public String getDescription() {
        return "Just Images";
    }
}

/**
 * DOCUMENT ME!
 *
 * @version $Revision$
 * @author $author$
 */
class ImageFileView extends FileView {
    ImageIcon jpgIcon = new ImageIcon(getClass().getResource("/icons/jpgIcon.gif"));
    ImageIcon gifIcon = new ImageIcon(getClass().getResource("/icons/gifIcon.gif"));
    ImageIcon tiffIcon = new ImageIcon(getClass().getResource("/icons/tiffIcon.gif"));

    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public String getName(File f) {
        return null; // let the L&F FileView figure this out
    }

    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public String getDescription(File f) {
        return null; // let the L&F FileView figure this out
    }

    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public Boolean isTraversable(File f) {
        return null; // let the L&F FileView figure this out
    }

    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public String getTypeDescription(File f) {
        String extension = ZFileChooser.getExtension(f);
        String type = null;

        if (extension != null) {
            if (extension.equals(ZFileChooser.jpeg) ||
                    extension.equals(ZFileChooser.jpg)) {
                type = "JPEG Image";
            } else if (extension.equals(ZFileChooser.gif)) {
                type = "GIF Image";
            } else if (extension.equals(ZFileChooser.tiff) ||
                           extension.equals(ZFileChooser.tif)) {
                type = "TIFF Image";
            }
        }

        return type;
    }

    /**
     * DOCUMENT ME!
     *
     * @param f DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public Icon getIcon(File f) {
        String extension = ZFileChooser.getExtension(f);
        Icon icon = null;

        if (extension != null) {
            if (extension.equals(ZFileChooser.jpeg) ||
                    extension.equals(ZFileChooser.jpg)) {
                icon = jpgIcon;
            } else if (extension.equals(ZFileChooser.gif)) {
                icon = gifIcon;
            } else if (extension.equals(ZFileChooser.tiff) ||
                           extension.equals(ZFileChooser.tif)) {
                icon = tiffIcon;
            }
        }

        return icon;
    }
}

⌨️ 快捷键说明

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