它首先出现在屏幕的左上角,然后显示在屏幕的中间。
它是代码:
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;
}发布于 2019-06-21 23:48:19
您不应该在每次要显示Stage时都创建新的FileChooser。删除此行:
Stage stage = new Stage();并以FileChooser所有者的身份使用应用程序的Window。例如,如果您试图在用户单击按钮时显示此对话框,则可以获得如下的Window:
Button button = new Button("Browse");
button.setOnAction(event -> {
Window window = button.getScene().getWindow();
fileChooser.showOpenDialog(window);
event.consume();
});https://stackoverflow.com/questions/56706256
复制相似问题