IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[Stratégie] Exploration du JFileChooser: Composant composite de la liste des fichiers


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Points : 181
    Points
    181
    Par défaut [Stratégie] Exploration du JFileChooser: Composant composite de la liste des fichiers
    Bonjour,

    je suis en train de faire la gestion du drag and drop pour le JFileChooser (à la main pas de TransferHandler) Pour ce faire j'ai du accéder à la liste des fichiers par l'arborescence des composants:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JComponent c = (JComponent) ((JScrollPane) ((JPanel) ((JPanel)
                                getComponent(2)).getComponent(0)).getComponent(0)).getViewport().getView();
    Voila c'est moche mais j'ai le composant et je peux lui ajouter des listener! Le problème réside dans le fait qu'un passage du mode "liste" au mode "détails" me mets tout en l'air!

    En effet le composant est modifié quand on change de vue, il y a peut être une solution élégante de faire ça alors je me tourne vers vous...

    La solution est peut être dans FilePane: http://www.koders.com/java/fidEC94FD...318BD57FD.aspx

    Merci

  2. #2
    Membre habitué
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Points : 181
    Points
    181
    Par défaut
    Bon j'ai trouvé la solution, je ne sait pas si ça interesse grand monde mais voici ma solution (peut être pas la meilleure )

    En fait je change de vue à la main et j'explore l'arborescence pour récupérer ma liste ou ma jtable.

    Dans le contructeur de mon JFileChooser:
    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
    18
    19
    20
    21
     
    // On recupere le FilePane
    FilePane fp = getFilePane(this);
     
    // JList de la vue "liste"
    JList list = (JList) findChildComponent(this, JList.class);
    /* Mon traitement
    ...
    */
     
    // On passe en mode détails
    fp.setViewType(FilePane.VIEWTYPE_DETAILS);
     
    // JTable de la vue "détails"
    JTable table = (JTable) findChildComponent(this, JTable.class);
    /* Mon traitement
    ...
    */
     
    // On remets comme avant
    fp.setViewType(FilePane.VIEWTYPE_LIST);
    Mes deux fonctions:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
            // Cherche un composant en fct de son type
            private Component findChildComponent(Container container, Class cls) {
                int n = container.getComponentCount();
                for (int i = 0; i < n; i++) {
                    Component comp = container.getComponent(i);
                    if (cls.isInstance(comp)) {
                        return comp;
                    } else if (comp instanceof Container) {
                        Component c = findChildComponent((Container)comp, cls);
                        if (c != null) {
                            return c;
                        }
                    }
                }
                return null;
            }
     
            // Même chose pour le FilePane
            private FilePane getFilePane(JFileChooser toGetFileView)
    	{
    		Component[] components = toGetFileView.getComponents();
     
    		for(Object Comp : components)
    		{
    			if(Comp instanceof FilePane)
    			{
    				return ((FilePane)Comp);
    			}
    		} 
     
    		return null;
    	}
    Voila si vous avez des questions sur la structure du JFileChooser je suis votre homme!

    [EDIT]Faute d'orthographe[/EDIT]

  3. #3
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Et bien, pourquoi pas un tuto bien complet sur la bête ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  4. #4
    Membre habitué
    Profil pro
    Dev NodeJS
    Inscrit en
    Août 2006
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev NodeJS

    Informations forums :
    Inscription : Août 2006
    Messages : 177
    Points : 181
    Points
    181
    Par défaut
    Il y a des tas de tutos sur l'utilisation basique, ensuite si c'est pour manipuler la liste de fichiers directement tout est dans ce post.

    Je veux bien en faire un sur la structure du composant mais je pense pas que ça soit très utile

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Composants composites à l'intérieur d'un autre
    Par geforce dans le forum JSF
    Réponses: 8
    Dernier message: 14/12/2011, 17h45
  2. Composant composite et affichage en mode conception
    Par defiant69 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 17/10/2009, 17h15
  3. Créer un composant composite ?
    Par Jayceblaster dans le forum Delphi .NET
    Réponses: 19
    Dernier message: 16/05/2006, 15h51
  4. Réponses: 3
    Dernier message: 26/10/2005, 10h24
  5. [JFileChooser] Personnaliser l'accès à l'arborescence des fichiers
    Par Cylise dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 10/09/2005, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo