[Swing] Obtenir un filechooser arborescent

Isendil Messages postés 821 Statut Membre -  
Isendil Messages postés 821 Statut Membre -
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
A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
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)
1
Isendil Messages postés 821 Statut Membre 22
 
Ok je vais voir ça... J'avais jamais utilisé SWT, je vais en profiter pour voir un peu ce que ça contient :) Merci beaucoup !
0