JFileChooser的简单变化
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.*;
public class JFileChooserDemo extends JFrame{
private Container container;//设置容器
private JFileChooser chooser;//文件选择器
private JButton button;//选择文件按钮
private JComboBox comboBox;//用于设定文件对话框作用(打开还是保存)
public JFileChooserDemo(){
super("文件选择器演示");
container = getContentPane();//得到容器
container.setLayout(new FlowLayout());//设置为流式布局
chooser = new JFileChooser();//初始化文件选择器
button = new JButton("选择文件");//初始化按钮
comboBox = new JComboBox();//初始化组合框
comboBox.addItem("打开");
comboBox.addItem("保存");
container.add(comboBox);
container.add(button);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int state;//文件选择器返回状态
chooser.removeChoosableFileFilter(chooser.getAcceptAllFileFilter());//移去所有文件过滤器
chooser.addChoosableFileFilter(new MyFileFilter("gif","图像文件"));//增加文件过滤器,接受gif文件
if(comboBox.getSelectedIndex() == 0)//组合框为“打开”
state = chooser.showOpenDialog(null);//显示打开文件对话框
else
state = chooser.showOpenDialog(null);//显示保存文件对话框
File file = chooser.getSelectedFile();//得到选择的文件
if(file != null && state ==JFileChooser.APPROVE_OPTION){//选择了文件并点击了打开可保存按钮
JOptionPane.showMessageDialog(null, file.getPath());//显示提示信息
}else if(state == JFileChooser.CANCEL_OPTION){//点击了撤销按钮
JOptionPane.showMessageDialog(null, "退出");//显示提示信息
}else if(state == JFileChooser.ERROR_OPTION);
JOptionPane.showMessageDialog(null, "错误!");显示提示信息
}
});
this.setSize(400,300);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String [] args){
new JFileChooserDemo();
}
}
import java.io.File;
import javax.swing.filechooser.FileFilter;
//文件过滤器
public class MyFileFilter extends FileFilter{
String ends;//文件后缀
String description;//文件描述文字
public MyFileFilter(String ends,String deccription){
this.ends = ends;
this.description = description;
}
public boolean accpt(File file){//重载FileFilter中的accept方法
if(file.isDirectory())//如果是目录,则返回true
return true;
String fileName = file.getName();//得到文件名称
if(fileName.toUpperCase().endsWith(ends.toUpperCase()))//把文件后缀与可接受后缀转成大写后比较
return true;
else
return false;
}
public String getDescription(){//返回文件描述文字
return description;
}
@Override
public boolean accept(File f) {
// TODO Auto-generated method stub
return false;
}
}