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);
}
}
闽公网安备 35060202000074号