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

    FileChooser - estensione automatica

    Ciao ragazzi,
    vorrei chiedervi come sarebbe possibile fare in modo che una JFileChooser, dopo aver aperto una showSaveDialog mi restituisca anche l'estensione selezionata e non solo il nome del file.

    Ecco il codice:
    codice:
    fSalva=new JFileChooser ();
    fSalva.addChoosableFileFilter (new FileNameExtensionFilter ("Documento .doc", "doc"));
    int risp=fSalva.showSaveDialog(fGesPro);
    if(risp==JFileChooser.APPROVE_OPTION)
    	File fDest = fSalva.getSelectedFile();
    il file fDest in questione contiene solo il nome del file scelto..ma non l'estensione .doc che dovrebbe essere automatica.
    Qualche soluzione? Grazie

  2. #2
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: FileChooser - estensione automatica

    Originariamente inviato da giaomnitel1
    Ciao ragazzi,
    vorrei chiedervi come sarebbe possibile fare in modo che una JFileChooser, dopo aver aperto una showSaveDialog mi restituisca anche l'estensione selezionata e non solo il nome del file.

    Ecco il codice:
    codice:
    fSalva=new JFileChooser ();
    fSalva.addChoosableFileFilter (new FileNameExtensionFilter ("Documento .doc", "doc"));
    int risp=fSalva.showSaveDialog(fGesPro);
    if(risp==JFileChooser.APPROVE_OPTION)
    	File fDest = fSalva.getSelectedFile();
    il file fDest in questione contiene solo il nome del file scelto..ma non l'estensione .doc che dovrebbe essere automatica.
    Qualche soluzione? Grazie
    in fDest avrai tutto il percorso del file compresa l'estensione:
    esempio: '/home/giordano/miofile.txt'
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: FileChooser - estensione automatica

    Originariamente inviato da Metflar
    in fDest avrai tutto il percorso del file compresa l'estensione:
    esempio: '/home/giordano/miofile.txt'
    No ... immagino che lui intendesse sapere quale è la estensione selezionata nella combo box del file chooser.
    La questione è che il filtro viene fatto con una classe che estende FileFilter e che potrebbe gestire più estensioni (come è in grado di fare proprio FileNameExtensionFilter, ad esempio).

    Dal file chooser si può solo sapere quale è il filtro selezionato tramite il metodo getFileFilter() che ritorna un FileFilter. Ma poi da lì per sapere la estensione .... beh, dipende. Si può fare ma bisogna vedere da quali/quanti filtri sono stati usati.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: Re: Re: FileChooser - estensione automatica

    Originariamente inviato da andbin
    No ... immagino che lui intendesse sapere quale è la estensione selezionata nella combo box del file chooser.
    La questione è che il filtro viene fatto con una classe che estende FileFilter e che potrebbe gestire più estensioni (come è in grado di fare proprio FileNameExtensionFilter, ad esempio).

    Dal file chooser si può solo sapere quale è il filtro selezionato tramite il metodo getFileFilter() che ritorna un FileFilter. Ma poi da lì per sapere la estensione .... beh, dipende. Si può fare ma bisogna vedere da quali/quanti filtri sono stati usati.
    ah avevo capito male
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  5. #5
    Quello che mi serve è che quando l'utente inserisce il nome del file nel JFileChooser, alla pressione del tasto Salva, in fDest io abbia percorsoFile+NomeFile+EstensioneSelezionata(dal menu a tendina dei formati).

    Purtroppo però con getSelectedFile() mi restituisce solo percorsoFile+NomeFile.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da giaomnitel1
    Quello che mi serve è che quando l'utente inserisce il nome del file nel JFileChooser, alla pressione del tasto Salva, in fDest io abbia percorsoFile+NomeFile+EstensioneSelezionata(dal menu a tendina dei formati).

    Purtroppo però con getSelectedFile() mi restituisce solo percorsoFile+NomeFile.
    Devi farlo tu appositamente. Non può farlo il JFileChooser semplicemente perché non può sapere come è stato implementato il filtro. FileFilter definisce solo il metodo di accept() per il filtro e quello per la descrizione. Quindi non c'è uno "standard" che consenta di "esporre" al di fuori le estensioni. Uno potrebbe fare una anonymous class che estende FileFilter e che filtra 3 estensioni ma che non consente di sapere quali sono le estensioni filtrate. Se una classe le espone, ad esempio FileNameExtensionFilter con il metodo getExtensions() è solo una particolarità, non lo standard.

    Quindi:
    a) Devi determinare quale è il filtro selezionato.
    b) Dal filtro devi determinare una estensione.
    c) Aggiungere la estensione al nome di file ma solo se non c'è già!

    Come fare la fase b), dipende.

    Puoi stabilirlo facendo una comparazione con il reference:

    codice:
    FileFilter docFilter = new FileNameExtensionFilter ("Documento .doc", "doc");
    
    ....
    FileFilter selFilter = chooser.getFileFilter();
    
    if (selFilter == docFilter) {
    ... qui sai che la estensione è .doc.
    }
    Poi dovresti prendere il nome del file, vedere se alla fine non c'è già un .doc (vedi endsWith() di String) e in tal caso crei un String o un nuovo File con il path aggiornato della estensione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2025 vBulletin Solutions, Inc. All rights reserved.