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.javaimport 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