Creating a JFileChooser Dialog

The following example creates a file chooser and displays it as first an open-file dialog and then as a save-file dialog:
String filename = File.separator+"tmp"; JFileChooser fc = new JFileChooser(new File(filename)); // Show open dialog; this method does not return until the dialog is closed fc.showOpenDialog(frame); File selFile = fc.getSelectedFile(); // Show save dialog; this method does not return until the dialog is closed fc.showSaveDialog(frame); selFile = fc.getSelectedFile();
Here is a more elaborate example that creates two buttons that create and show file chooser dialogs.
// This action creates and shows a modal open-file dialog. public class OpenFileAction extends AbstractAction { JFrame frame; JFileChooser chooser; OpenFileAction(JFrame frame, JFileChooser chooser) { super("Open..."); this.chooser = chooser; this.frame = frame; } public void actionPerformed(ActionEvent evt) { // Show dialog; this method does not return until dialog is closed chooser.showOpenDialog(frame); // Get the selected file File file = chooser.getSelectedFile(); } }; // This action creates and shows a modal save-file dialog. public class SaveFileAction extends AbstractAction { JFileChooser chooser; JFrame frame; SaveFileAction(JFrame frame, JFileChooser chooser) { super("Save As..."); this.chooser = chooser; this.frame = frame; } public void actionPerformed(ActionEvent evt) { // Show dialog; this method does not return until dialog is closed chooser.showSaveDialog(frame); // Get the selected file File file = chooser.getSelectedFile(); } };
Here's some code that demonstrates the use of the actions:
JFrame frame = new JFrame(); // Create a file chooser String filename = File.separator+"tmp"; JFileChooser fc = new JFileChooser(new File(filename)); // Create the actions Action openAction = new OpenFileAction(frame, fc); Action saveAction = new SaveFileAction(frame, fc); // Create buttons for the actions JButton openButton = new JButton(openAction); JButton saveButton = new JButton(saveAction); // Add the buttons to the frame and show the frame frame.getContentPane().add(openButton, BorderLayout.NORTH); frame.getContentPane().add(saveButton, BorderLayout.SOUTH); frame.pack(); frame.setVisible(true);

Post a comment

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image. Ignore spaces and be careful about upper and lower case.