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

    jfilechooser - filtro per estensione del file

    salve. Ho scritto una applet che salva sul client un file xml. l'utente sceglie il percorso del file utilizzando una finestra jfilechooser. Il problema è questo: vorrei che potesse salvare solo in formato xml. Ho utilizzato un filtro

    codice:
     
    JFileChooser chooser = new JFileChooser(){
    chooser.addChoosableFileFilter (new FileNameExtensionFilter ("File XML", "xml")
    int returnVal = chooser.showSaveDialog(frameParent);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
    	System.out.println("You chose to save this file: " +
    	chooser.getSelectedFile().getAbsolutePath());
    	}
    poi ho fatto correre l'applet. Nella finestra di dialogo ho l'opzione "salva come XML",però anche se abilito l'opzione e scrivo il nome del file con un'estensione che non c'entra niente: pippo.doc, il file viene salvato con estensione doc. Come faccio a permettere all'utente il solo salvataggio con estensione xml??

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

    Re: jfilechooser - filtro per estensione del file

    Originariamente inviato da italo2008
    però anche se abilito l'opzione e scrivo il nome del file con un'estensione che non c'entra niente: pippo.doc, il file viene salvato con estensione doc. Come faccio a permettere all'utente il solo salvataggio con estensione xml??
    È un controllo che devi effettuare tu, non lo fa di per sé il JFileChooser. E il filtro è solo a livello "visuale", non controlla/forza un bel nulla.

    Il test è semplice: prendi il File selezionato e verifichi la estensione: termina con ".xml"? Allora ok. Altrimenti hai diverse possibilità: a) Rifiutare e quindi ripetere la richiesta oppure b) Aggiungere o sostituire la estensione (es. pippo.doc puoi farlo diventare pippo.doc.xml o pippo.xml)

    Questo controllo lo puoi certamente fare dopo che il JFileChooser è stato chiuso (quando la selezione è stata approvata) ma c'è anche il modo di farlo prima che il JFileChooser si chiuda. E per fare in quest'ultimo modo è necessario estendere JFileChooser. Al riguardo trovi un esempio tra i miei Java Examples (l'esempio che chiede conferma di sovrascrittura).

    E puoi anche fare la cosa in modo "generico", ovvero prendi il File selezionato, prendi il FileFilter corrente e invochi accept() per vedere se il filtro accetta il file.


    EDIT: ho aggiunto l'esempio completo tra i miei Java Examples.
    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.