Ich habe mit dem Problem konfrontiert während java.awt.FileDialog mit dem nächsten Codeschnipsel aufgerufen. OS X Spinner ständig Spinnen und nichts ändern (Finder lässt sich nicht öffnen)OS X El Capitan 10.11.3 Java 8 FileDialog öffnet nicht
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("CSV Parser");
Button button = new Button();
button.setText("Import Translations");
button.setOnAction(event -> {
String openFile = openFile();
System.out.println("Open file " + openFile);
});
VBox vbox = new VBox();
vbox.setPadding(new Insets(10));
vbox.setSpacing(8);
vbox.getChildren().add(button);
primaryStage.setScene(new Scene(vbox));
primaryStage.show();
}
public static String openFile() {
JFrame parentFrame = getJFrame("JFrame");
String osName = System.getProperty("os.name");
if (osName.toLowerCase().contains("mac")) {
FileDialog fileDialog = new FileDialog(parentFrame);
FilenameFilter csvFilter = (dir, name) -> name.endsWith(".csv");
fileDialog.setFilenameFilter(csvFilter);
fileDialog.setFile("*.csv");
fileDialog.setMode(FileDialog.LOAD);
String dirHome = System.getProperty("user.home");
fileDialog.setDirectory(dirHome);
fileDialog.setVisible(true);
boolean isShowing = fileDialog.isShowing();
if (isShowing) {
File fileToOpen = new File(fileDialog.getFile());
String path = fileToOpen.getAbsolutePath();
parentFrame.dispatchEvent(new WindowEvent(parentFrame, WindowEvent.WINDOW_CLOSING));
return path;
} else {
parentFrame.dispatchEvent(new WindowEvent(parentFrame, WindowEvent.WINDOW_CLOSING));
return null;
}
}
return null;
}
private static JFrame getJFrame(String name) {
JFrame parentFrame = new JFrame(name);
parentFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
ex.printStackTrace();
}
return parentFrame;
}
public static void main(String[] args) {
launch(args);
}
}
Ich brauche nur die Fähigkeit zu haben, eine Datei mit entsprechenden Erweiterung wählen (kein Ordner), das Aussehen der Dialog nicht über ein Bi Sinn, aber ich möchte es ohne externen Bibliotheken implementieren. Ich wäre für jede Hilfe dankbar.
* "und Spinner drehen sich" * Was für Spinner? Warum nicht 'JFileChooser' anstelle von' FileDialog' verwenden? Um eine bessere Hilfe zu erhalten, veröffentlichen Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/). –
@AndrewThompson Es funktioniert nicht mit JFileChooser nicht mit FileDialog. Viele Leute, die in SO über Probleme mit JFileChooser berichtet haben, haben mich dazu entschieden, zu FileDialog zu wechseln. – Ray