Use a file dialog to open a file from a local drive

The example shows the integration of a javax.swing.JFileChooser in a processing applet.

Download the source file

Table Of Contents

Source - applet JFileChooserExample

* Demonstration of JFileChooser opened from Processing
* A running PApplet opens a JFileChooser to load a background image
* on keyPressed()
* by georg munkel

// import the JFileChooser from swing library
import javax.swing.JFileChooser;

//the backgroundImage
PImage bgImage = null;

void setup()
        //do your inital tasks here

void draw()
        //check if the background images is loaded yet
        if (bgImage != null)
                //display the streched image
                image(bgImage, 0, 0, width, height);

        //do some graphics here
        ellipse( random(width), random(height), 10, 10);

void keyPressed()
        //get the file name with path from loadAFile()
        String file = loadAFile();

        //try to load an image file from the given file name
        if (file != null) bgImage = loadImage(file);

* opens a JFileChooser to select a file
* returns the file name with complete path as String
*         null, if no file was selected
String loadAFile()
        //file name to be returned by this method
        String fileWithPath = null;

        //switch of the loop of the draw method
        //importand!! otherwise the applet will crash

        //create a new instance of JFileChooser 'chooser'
        JFileChooser chooser = new JFileChooser();

        //store the state of the file chooser on popdown in returnVal
        //check out showSaveDialog!
        //              hand over the applet (this) a parent component for chooser
        int returnVal = chooser.showOpenDialog( this );

        //check the value of returnVal
        if(returnVal == JFileChooser.APPROVE_OPTION)
                //a file has been selected
                System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName());

                //set the return varliable to the file name with path
                fileWithPath = chooser.getSelectedFile().getAbsolutePath();

        //the file dialog is closed again
        //so switch on draw method loop again
        //and return the fileName
        return fileWithPath;