[Swing] Obtenir un filechooser arborescent
Isendil
Messages postés
815
Date d'inscription
Statut
Membre
Dernière intervention
-
Isendil Messages postés 815 Date d'inscription Statut Membre Dernière intervention -
Isendil Messages postés 815 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai besoin de demander à un utilisateur de sélectionner un dossier dans une application développée avec Swing. J'utilise pour l'instant un JFileChooser avec l'option setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY), ce qui affiche une fenêtre ressemblant à ça : https://www.java.net//blog/loneid/archive/Vista/Issue2.jpg .
J'aurais aimé obtenir une fenêtre qui ressemblerait bien plus à celle là : http://www.java2s.com/Code/JavaImages/Snippet33.PNG , car je trouve son comportement plus intuitif pour la sélection d'un dossier.
Après avoir un peu cherché, je n'ai rien trouvé qui me permettrait de faire ça, si vous avez une idée je suis preneur !
Merci d'avance
J'ai besoin de demander à un utilisateur de sélectionner un dossier dans une application développée avec Swing. J'utilise pour l'instant un JFileChooser avec l'option setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY), ce qui affiche une fenêtre ressemblant à ça : https://www.java.net//blog/loneid/archive/Vista/Issue2.jpg .
J'aurais aimé obtenir une fenêtre qui ressemblerait bien plus à celle là : http://www.java2s.com/Code/JavaImages/Snippet33.PNG , car je trouve son comportement plus intuitif pour la sélection d'un dossier.
Après avoir un peu cherché, je n'ai rien trouvé qui me permettrait de faire ça, si vous avez une idée je suis preneur !
Merci d'avance
1 réponse
-
Ce que tu cherches c'est donc une combinaison de JFileDialog et JTree.
À ma connaissance cela n'existe pas dans l'API standard, mais tu peux par exemple utiliser SWT qui possède une classe DirectoryDialog.
Exemple de code :
import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Shell; public class Test { public static void main(String...args) { DirectoryDialog dialog = new DirectoryDialog(new Shell()); String dir = dialog.open(); System.out.println(dir); } }
Sous Windows 7, cela donnerait ceci : Remarque : pour installer SWT, tu dois avoir Eclipse. Tu vas dans le menu "Help", "Install New Software", puis dans le premier champs tu choisis "All Available Sites", et dans le deuxième tu tapes "SWT", tu dois avoir 4 plugins à sélectionner et installer.
Ensuite, tu dois rajouter le JAR dans ton projet en faisant "Project", "Properties", "Java Build Path", "Add External JARs" et tu vas choisir dans le dossier d'installation d'Eclipse le dossier plugins et un fichier JAR qui doit s'appeler org.eclipse.swt (il y en a plusieurs de quelques Ko et un de plusieurs Mo, c'est celui-ci que tu dois choisir)