/** * 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 noLoop(); //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! //see: http://java.sun.com/javase/6/docs/api/index.html?javax/swing/JFileChooser.html // 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 loop(); //and return the fileName return fileWithPath; }