Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Сохранение через FileChooser

#java #javafx


Всем добрый день, я хочу чтобы пользователь выбирал где сохранять файл сам через
FileChooser в JavaFX, но когда он выбирает директорию например D:\File\ а тут мне выдают
сообщение что я не могу сохранять файлы в данной директории!!! Я администратор и я
не могу сохранять, печально... Как сделать так, чтобы я мог сохранять там, где захочу?

    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Select directory for save");
    fileChooser.setInitialFileName("decryptImage");
    fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image",
"*.png"));
    File newImageFile = fileChooser.showSaveDialog(expandOverlapButton.getScene().getWindow());


А далее я использую объект newImageFile в методе ImageIO.write(...);
    


Ответы

Ответ 1



Чтобы исключить недоразумений можете попробовать запустить вот этот код и проверить будет ли происходить сохранение? import javafx.application.Application; import javafx.embed.swing.SwingFXUtils; import javafx.scene.image.ImageView; import javafx.stage.FileChooser; import javafx.stage.Stage; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; public class Test extends Application { @Override public void start(Stage primaryStage) throws IOException { Stage stage = new Stage(); FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Select directory for save"); fileChooser.setInitialFileName("decryptImage"); fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image", "*.jpg")); File file = fileChooser.showSaveDialog(stage); if (file != null) { ImageView imageView = new ImageView(); URL url = new URL("https://www.google.by/images/branding/googlelogo/2x/googlelogo_color_120x44dp.png"); BufferedImage image = ImageIO.read(url); imageView.setImage(SwingFXUtils.toFXImage(image, null)); ImageIO.write(SwingFXUtils.fromFXImage(imageView.getImage(), null), "png", file); } } public static void main(String[] args) { launch(args); } } Если результат будет тот же, то хотя бы будет понятно, что ошибка где-то в локальном энвароменте поскольку данный код работает на моем локальном компьютере. И если это все-таки будет так, то будем думать дальше.

Комментариев нет:

Отправить комментарий