2009-12-12 3 views
1

Il existe déjà quelques questions sur la façon de définir un default file name pour un contrôle JFileChooser.JFileChooser.showSaveDialog (...) - conserve le nom du fichier suggéré après le changement de répertoire

J'ai quelques problèmes avec en préservant ce nom de fichier par défaut lors du changement de répertoire. Maintenant, quand je fais cela, le nom de fichier d'origine que j'ai fourni est remplacé par le chemin du nouveau répertoire lui-même.

Y at-il quelque chose qui peut être fait pour éviter ce comportement?

Répondre

1

Vous pouvez ajouter un PropertyListener au sélecteur de fichier, et si vous obtenez une propriété "directoryChanged", redéfinissez votre fichier par défaut.

Par exemple:

JFileChooser chooser = new JFileChooser(); 
    chooser.addPropertyChangeListener(new PropertyChangeListener() { 
     public void propertyChange(PropertyChangeEvent evt) 
     { 
     if (evt.getPropertyName().equals("directoryChanged")) 
     { 
      JFileChooser me = (JFileChooser)evt.getSource(); 
      me.setSelectedFile(new File("text.txt")); 
     } 
     } 
    }); 

Il semble que cela pourrait faire ce que vous voulez, mais est plus une solution qu'une solution appropriée.

+0

Cela ne semble pas fonctionner sous Windows 7. Lorsque j'exécute ce code, le champ filename n'est pas mis à jour avec le nom de fichier que je fournis, bien que le PropertyChangeEvent correspondant (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) soit déclenché. – abahgat

+0

J'utilisais Vista avec un aspect et une convivialité par défaut. Quel L & F utilisez-vous? – Ash

+0

Hey abahgat, j'ai essayé cela avec System et Nimbus L & F sur Vista et ça marche OK, donc oui - probablement une chose win7 comme vous le suggérez plutôt qu'une chose de L & F. J'aurai accès à une boîte de Windows 7 le jeudi pour l'essayer, mais si vous l'avez résolu avant, veuillez poster un commentaire ou quelque chose du genre. – Ash

Questions connexes