JavaFX: FileChooser мигает - PullRequest
       13

JavaFX: FileChooser мигает

0 голосов
/ 21 июня 2019

Сначала отображается в левом верхнем углу экрана, а затем отображается в середине экрана.

Это код:

 private static File fileChooserDialog(  final String initialDirectory, final String initialFileName, final boolean open,
                                        final String filterString, final String... extensions) {

    FileChooser fileChooser = new FileChooser();

    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter(filterString, extensions);
    fileChooser.getExtensionFilters().add(extFilter);

    Stage stage = new Stage();

    File resultFile;

    if(open) {
        resultFile = fileChooser.showOpenDialog(stage);
    } else {
        resultFile = fileChooser.showSaveDialog(stage);
    }

    if(resultFile != null) {
        lastSelectedFilePath = resultFile.getParent();
    }

    return resultFile;
}

1 Ответ

0 голосов
/ 21 июня 2019

Не следует создавать новый Stage каждый раз, когда вы хотите показать FileChooser. Удалить эту строку:

Stage stage = new Stage();

И используйте Window вашего приложения в качестве владельца для FileChooser. Например, если вы пытаетесь показать это диалоговое окно, когда пользователь нажимает кнопку, вы можете получить Window, например:

Button button = new Button("Browse");
button.setOnAction(event -> {
    Window window = button.getScene().getWindow();
    fileChooser.showOpenDialog(window);
    event.consume();
});
...