Как я могу сделать JavaFX filechooser всегда наверху окна? - PullRequest
0 голосов
/ 10 мая 2019

Как я могу сделать так, чтобы JavaFX filechooser всегда находился сверху?

В моем приложении некоторые другие диалоги вызывают filechooser, и этот диалог устанавливается как alwaysonTop, поэтому диалог filechooser находится за этим диалогом.Как я могу сделать так, чтобы диалог выбора файлов всегда находился наверху окна?

Я сделал так, чтобы этот выборщик файлов был похож на этот код.


    public static File getSaveFileFX(final String suffix, String title) {
        File[] selectedFile = {null};
        FileChooser fc = new FileChooser();
        fc.setTitle(title);
        String root = "*" + suffix;
        String fileFormat = suffix + " files";
        fc.getExtensionFilters().addAll(new ExtensionFilter(fileFormat, root));
        fc.setInitialDirectory(new File(getRecentDirectoryPath()));

        PlatformImpl.runAndWait(new Runnable() {
            @Override
            public void run() {
                selectedFile[0] = fc.showSaveDialog(null);
                if(selectedFile[0] != null && !title.equals("Sava To .CSV file")) {
                    //filtering with title
                    mPreferences.put(RECENT_FILE_PATH, selectedFile[0].getAbsolutePath());
                    mPreferences.put(RECENT_DIRECTORY_PATH, selectedFile[0].getParent());
                }
            }
        });

        if(selectedFile[0] != null && !selectedFile[0].getName().endsWith(suffix)) {
            return new File(selectedFile[0].getAbsolutePath()+"."+suffix);
        }else {
            return selectedFile[0];
        }
    }

, а другой диалог установлен как

dialog.alwaysOnTop(true);
...