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