服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

[java100例]017、文件对话框

import java.io.file;
import javax.swing.*;
import javax.swing.filechooser.*;
/**
 * <p>title: 文件过滤器演示</p>
 * <p>description: filechooserdemo文件使用的文件过滤器</p>
 * <p>copyright: copyright (c) 2003</p>
 * <p>filename: myfilter.java</p>
 * @version 1.0
 */


public class myfilter extends filefilter {
   private string files;
   public boolean accept(file f) {
        if (f.isdirectory()) {
            return true;
        }


        string extension = getextension(f);
        if (extension != null) {
           
            if (extension.equals("java")) {//定义过滤java文件
                    return true;
            } else {
                return false;
            }


        }


        return false;
    }


    //过滤器描述
    public string getdescription() {
        return "java";
    }
/**
 *<br>方法说明:获取文件扩展名
 *<br>输入参数:
 *<br>返回类型:
 */
    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;
    }
}


 


 


import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;
/**
 * <p>title: 文件对话框演示</p>
 * <p>description: 演示打开文件对话框和保存文件对话框,使用了文件过滤。</p>
 * <p>copyright: copyright (c) 2003</p>
 * <p>filename: filechooserdemo.java</p>
 * @version 1.0
 */


public class filechooserdemo extends jpanel
                             implements actionlistener {
    static private final string newline = "";
    jbutton openbutton, savebutton;
    jtextarea log;
    jfilechooser fc;


    public filechooserdemo() {
        super(new borderlayout());


        log = new jtextarea(15,40);
        log.setmargin(new insets(10,10,10,10));
        log.seteditable(false);
        jscrollpane logscrollpane = new jscrollpane(log);


        //创建一个文件过滤,使用当前目录
        fc = new jfilechooser(".");
        //过滤条件在myfilter类中定义
        fc.addchoosablefilefilter(new myfilter());


        openbutton = new jbutton("打开文件",
                                 createimageicon("images/open16.gif"));
        openbutton.addactionlistener(this);


        savebutton = new jbutton("保存文件",
                                 createimageicon("images/save16.gif"));
        savebutton.addactionlistener(this);


        //构建一个面板,添加“打开文件”和“保存文件”
        jpanel buttonpanel = new jpanel();
        buttonpanel.add(openbutton);
        buttonpanel.add(savebutton);


        add(buttonpanel, borderlayout.page_start);
        add(logscrollpane, borderlayout.center);
    }
/**
 *<br>方法说明:事件处理
 *<br>输入参数:
 *<br>返回类型:
 */
    public void actionperformed(actionevent e) {


        //当点击“打开文件”按钮
        if (e.getsource() == openbutton) {
            int returnval = fc.showopendialog(filechooserdemo.this);


            if (returnval == jfilechooser.approve_option) {
                file file = fc.getselectedfile();
                //在这里添加一些对文件的处理
                log.append("打开文件: " + file.getname() + newline);
            } else {
                log.append("打开文件被用户取消!" + newline);
            }


        //点击“保存文件”按钮
        } else if (e.getsource() == savebutton) {
            int returnval = fc.showsavedialog(filechooserdemo.this);
            if (returnval == jfilechooser.approve_option) {
                file file = fc.getselectedfile();
                //在这里添加一些对文件的处理
                log.append("保存文件: " + file.getname()  + newline);
            } else {
                log.append("保存文件被用户取消!" + newline);
            }
        }
    }
/**
 *<br>方法说明:获取图像对象
 *<br>输入参数:string path 图片路径
 *<br>返回类型:imageicon 图片对象
 */
    protected static imageicon createimageicon(string path) {
        java.net.url imgurl = filechooserdemo.class.getresource(path);
        if (imgurl != null) {
            return new imageicon(imgurl);
        } else {
            system.err.println("couldn´t find file: " + path);
            return null;
        }
    }


    public static void main(string[] args) {
        jframe.setdefaultlookandfeeldecorated(true);
        jdialog.setdefaultlookandfeeldecorated(true);


        //创建窗体
        jframe frame = new jframe("filechooserdemo");
        frame.setdefaultcloseoperation(jframe.exit_on_close);


        //创建一个面板
        jcomponent newcontentpane = new filechooserdemo();
        newcontentpane.setopaque(true);
        frame.setcontentpane(newcontentpane);


        //显示窗体
        frame.pack();
        frame.setvisible(true);
    }
}

扫描关注微信公众号