java 代码
- package example;
- import java.io.File;
- import javax.swing.filechooser.FileFilter;
- public class SimpleFileFilter extends FileFilter {
- String[] extensions;
- String description;
- public SimpleFileFilter(String ext) {
- this(new String[] { ext }, null);
- }
- public SimpleFileFilter(String[] exts, String descr) {
- // Clone and lowercase the extensions
- extensions = new String[exts.length];
- for (int i = exts.length - 1; i >= 0; i--) {
- extensions[i] = exts[i].toLowerCase();
- }
- // Make sure we have a valid (if simplistic) description.
- description = (descr == null ? exts[0] + " files" : descr);
- }
- public boolean accept(File f) {
- // We always allow directories, regardless of their extensions.
- if (f.isDirectory()) {
- return true;
- }
- // It's a regular file, so check the extension.
- String name = f.getName().toLowerCase();
- for (int i = extensions.length - 1; i >= 0; i--) {
- if (name.endsWith(extensions[i])) {
- return true;
- }
- }
- return false;
- }
- public String getDescription() {
- return description;
- }
- }
java 代码
- package example;
- import java.awt.Container;
- import java.awt.FlowLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JFileChooser;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- public class MyFilterChooser extends JFrame {
- public MyFilterChooser( ) {
- super("Filter Test Frame");
- setSize(350, 200);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- Container c = getContentPane( );
- c.setLayout(new FlowLayout( ));
- JButton openButton = new JButton("Open");
- final JLabel statusbar = new JLabel("Output of your selection will go here");
- openButton.addActionListener(new ActionListener( ) {
- public void actionPerformed(ActionEvent ae) {
- String[] pics = new String[] {"gif", "jpg", "tif"};
- String[] audios = new String[] {"au", "aiff", "wav"};
- JFileChooser chooser = new JFileChooser( );
- chooser.addChoosableFileFilter(new SimpleFileFilter(pics,
- "Images (*.gif, *.jpg, *.tif)"));
- chooser.addChoosableFileFilter(new SimpleFileFilter(".MOV"));
- chooser.addChoosableFileFilter(new SimpleFileFilter(audios,
- "Sounds (*.aiff, *.au, *.wav)"));
- int option = chooser.showOpenDialog(MyFilterChooser.this);
- if (option == JFileChooser.APPROVE_OPTION) {
- if (chooser.getSelectedFile( )!=null)
- statusbar.setText("You chose " + chooser.getSelectedFile( ).getName( ));
- }
- else {
- statusbar.setText("You canceled.");
- }
- }
- });
- c.add(openButton);
- c.add(statusbar);
- setVisible(true);
- }
- public static void main(String args[]) {
- MyFilterChooser mfc = new MyFilterChooser( );
- }
- }