簡體   English   中英

JavaFX:FileChooser正在閃爍

[英]JavaFX: FileChooser is blinking

它首先出現在屏幕的左上角,然后顯示在屏幕中間。

這是代碼:

 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;
}

每次要顯示FileChooser時都不應創建新的Stage 刪除此行:

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();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM