MyFileChooser.java

This example uses a command-line argument, if present, or opens a FileChooser.

Example 1:

C:\ece538\JavaFX\FileChooser>java MyFileChooser chooser1.png
arguments
chooser1.png

Selected file: chooser1.png

Example 2, running without command-line arguments.

C:\ece538\JavaFX\FileChooser>java MyFileChooser
Selected file: chooser1.png

brings up FileChooser


MyFileChooser.java

import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
import javafx.scene.control.Label;
 
public final class MyFileChooser extends Application {
 
    private Desktop desktop = Desktop.getDesktop();
 
    @Override
    public void start(final Stage stage) {
        stage.setTitle("My File Chooser");
	Group grp = new Group();
	Scene scn = new Scene(grp,200,100);
 
       FileChooser fileChooser = new FileChooser();
       fileChooser.setInitialDirectory(
                new File(System.getProperty("user.dir"))
       );

       List<String> args = getParameters().getRaw();
       File file = null;
       if (args.size()>0) {
		System.out.println("arguments");
		for (String s: args) System.out.println(s);
		System.out.println();
		file = new File(args.get(0));
       }
       if (file == null) file = fileChooser.showOpenDialog(stage);
       if (file != null) {
                 String name = file.getName();
		 Label q = new Label(name);
		 q.setTranslateX(50);
	         q.setTranslateY(40);
		 grp.getChildren().add(q);
	         System.out.println("Selected file: " + name);
       }
 
 
        stage.setScene(scn);
        stage.show();
    }
 
    public static void main(String[] args) {
        Application.launch(args);
    }
}


Maintained by John Loomis, updated Wed Feb 07 14:23:04 2018