JFileChooser: addChoosableFileFilter(FileFilter filter)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;
public class MainClass extends JFrame implements ActionListener {
MainClass(String title) {
super(title);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
JButton jb = new JButton("Open ...");
jb.addActionListener(this);
p.add(jb);
jb = new JButton("Save ...");
jb.addActionListener(this);
p.add(jb);
getContentPane().add(p);
setSize(200, 65);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
int retVal;
JFileChooser fc = new JFileChooser();
if (e.getActionCommand().equals("Open ...")) {
fc.addChoosableFileFilter(new TextFilter());
retVal = fc.showOpenDialog(this);
} else
retVal = fc.showSaveDialog(this);
if (retVal == JFileChooser.APPROVE_OPTION)
System.out.println(fc.getSelectedFile().getName());
}
public static void main(String[] args) {
new MainClass("FileChooser Demo");
}
}
class TextFilter extends FileFilter {
public boolean accept(File f) {
if (f.isDirectory())
return true;
String s = f.getName();
int i = s.lastIndexOf('.');
if (i > 0 && i < s.length() - 1)
if (s.substring(i + 1).toLowerCase().equals("txt"))
return true;
return false;
}
public String getDescription() {
return "Accepts txt files only.";
}
}
Related examples in the same category