Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [JavaFX] FileChooser ed estensione file per salvare

    ciao!

    io ho questo metodo per scegliere il file da salvare:
    codice:
    public Optional<String> saveFile(Window ownerWindow, String title, FileChooser.ExtensionFilter ext) {
        FileChooser chooser = new FileChooser();
        chooser.setTitle(title);
        chooser.setInitialDirectory(lastDir);
        chooser.getExtensionFilters().add(ext);
        File file = chooser.showSaveDialog(ownerWindow);
        if (file != null) {
            return Optional.of(file.getPath());
        } else {
            return Optional.empty();
        }
    }

    solo che quando poi vado a salvare, non viene legata l'estensione al file.
    ho pensato di aggiungerla al nome del file; tipo:
    codice:
    FileUtils.writeStringToFile(new File(file + ".json"), json, StandardCharsets.UTF_8);

    ma non mi sembra una buona soluzione.
    avete qualche idea??

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ma non mi sembra una buona soluzione.
    avete qualche idea??
    Guarda .. non me ne intendo tanto di JavaFX (e quindi nemmeno del suo FileChooser) ma credo (penso ..) sia una cosa molto similare a quanto succede in Swing. In Swing il JFileChooser utilizza i FileFilter solo a livello "visivo", non li usa per imporre o controllare alcunché sul nome scelto. Quindi quando scegli un file per salvare, se l'utente ci mette l'estensione bene, altrimenti se non ci mette l'estensione, resta senza. Anche se magari c'è selezionato un filtro es. "File PDF (*.pdf)".

    Quindi in questi casi l'approccio in Swing potrebbe essere: verifico se il nome file scelto ha una estensione e se non c'è l'ha, la imposto al file in base al filtro selezionato.

    Credo che in JavaFX sia una cosa similare ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    si mi ricordo una cosa del genere in swing in effetti.

    così potrebbe essere un'idea:
    codice:
    public static void exportJson(String file, String json) throws IOException {
        String ext = FilenameUtils.getExtension(file);
        if (ext.isEmpty()) {
            file += ".json";
        }
        FileUtils.writeStringToFile(new File(file), json, StandardCharsets.UTF_8);
    }

    banalmente, controllo se l'estensione non è vuota, e in caso la aggiungo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.