Bonjour à tous !!
J'ai un tit problème avec JFileChooser... J'ai un document PDF à un emplacement précis sur mon disque, qui est généré à la volée. Il est sauvegardé dans un premier temps dans le répertoire de l'application. J'aimerai maintenant donner la possibilité à l'utilisateur de sauvegarder ce fichier ou bon lui semble, mais le JFileChooser a un comportement un peu bizarre...
Ce que j'aimerai, c'est que l'utilisateur puisse choisir le répertoire ou il veut l'enregistrer... J'utilise donc :
avec la classe PdfFilter telle que suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 JFileChooser jfc = new JFileChooser(); jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); jfc.addChoosableFileFilter(new PdfFilter()); jfc.setAcceptAllFileFilterUsed( false ); File catalog = new File( "catalog.pdf" ); jfc.setSelectedFile( catalog ); int returnVal = jfc.showSaveDialog( lgm.getCtrlView() ); // test de returnVal et copie/déplacement du fichier // ou log pour annulation ou erreur
(bon, je découvre, donc c'est peut-être pas top...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package test; import java.io.File; import javax.swing.filechooser.FileFilter; public class PdfFilter extends FileFilter { public boolean accept(File f) { if (f.isDirectory()) { return true; } return false; } public String getDescription() { return "Fichiers PDF"; } }
Maintenant, mes problèmes sont les suivants :
1. Le filtrage n'est pas sélectionné par défaut... La combobox est vide... c'est un peu génant, puisque le but est de pouvoir "obliger" l'utilisateur à enregistrer dans un format PDF (de toute manière, le format final sera mis en pdf, mais ça me semble plus logique d'avoir un filtre n'autorisant que ce format...)
2. J'arrive dans le répertoire par défaut avec mon FileChooser... (suis sur mac, donc répertoire de l'utilisateur courant). Lorsque le FileChooser s'affiche, j'ai bien "catalog.pdf" indiqué dans le textInput "Enregistrer sous". Maintenant je double-clique sur un répertoire (admettons "Desktop") pour entrer dans ce dernier, et hop, de "catalog.pdf", je passe à "Desktop" dans le textInput... Alors que j'aimerai bien que le contenu du textInput ne change pas, sauf si c'est l'utilisateur qui le modifie...
Les suggestions sont les bienvenues
D'avance merci
Partager