Browse for files with Java Swing

by Niklas Waller on May 20, 2010

in Java

I needed some code to be able to browse for files on the file system with Java so I put together this code that you could use to browse for files on the file system.

You can modify it to only browse files, directories or both:

chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

/*
FILES_ONLY
DIRECTORIES_ONLY
FILES_AND_DIRECTORIES
*/

You can specify which file types (file extensions) you wish to allow the browser to find. In my case I have allowed xml and xsl:

FileFilter filter = new FileNameExtensionFilter("File Extensions","xsl","xml");

The ‘FileTest’ class.
It outputs the chosen file names and their absolute paths on the console.

import java.awt.Dimension;
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;
import javax.swing.filechooser.FileNameExtensionFilter;

public class FileTest extends JPanel implements ActionListener {
JButton go;
JFileChooser chooser;
String choosertitle;
String fileContent = "";
File[] files;

static final long serialVersionUID = 0;

public FileTest() {
go = new JButton("Browse");
go.addActionListener(this);
add(go);
}

public void actionPerformed(ActionEvent e) {
chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle(choosertitle);
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
chooser.setMultiSelectionEnabled(true);

FileFilter filter = new FileNameExtensionFilter("File Extensions","xsl","xml");
chooser.setFileFilter(filter);

/* Disable the "All files" option */
chooser.setAcceptAllFileFilterUsed(false);

if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
files = chooser.getSelectedFiles();

/* Loop through all files */
for (int i=0;i<files.length;i++) {
System.out.println(files[i].getAbsoluteFile());
}
} else {
System.out.println("No Selection ");
}
}

public Dimension getPreferredSize(){
return new Dimension(200, 100);
}

/* remove leading whitespace */
public static String ltrim(String source) {
return source.replaceAll("^\\s+", "");
}

/* remove trailing whitespace */
public static String rtrim(String source) {
return source.replaceAll("\\s+$", "");
}

public static void main(String s[]) {
JFrame frame = new JFrame("Browse for files");
FileTest panel = new FileTest();
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
frame.getContentPane().add(panel,"Center");
frame.setSize(panel.getPreferredSize());
frame.setVisible(true);
}
}

Share and Enjoy:

  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • email
  • Google Buzz
  • RSS
  • Slashdot
  • Technorati
  • Add to favorites
  • DZone
  • LinkedIn
  • MySpace
  • Tumblr

Related posts:

  1. Get the content of a file with Java
  2. Query an SQL-database from Java
  3. Validate email-addresses in Domino with Java
  4. The basics of Java constructors
  5. List files in a directory with PHP

Leave a Comment

Previous post:

Next post: