Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment mettre un raccourci étoile

sur un arbre

Sujet résolu
    15 avril 2009 à 11:51:28

    Bonjour à tous
    Je vais essayer d'être clair avec vous !

    Voilà j'ai un document XML qui s'affiche dans un view et j'aimerais pouvoir déplier l'arbre xml en entier de la même manière que dans "explorer" à l'aide de la touche étoile.

    J'essaye d'utiliser la méthode setMnemonic mais à mon avis ce n'est pas la bonne.
    Qu'elle est donc la méthode à utiliser ?

    Merci d'avance pour vos réponses.
    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2009 à 12:18:03

      cf : tuto cysboy, il explique comment créer des raccourcis clavier.
      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2009 à 9:20:18

        Merci pour l'indication du tuto, mais placer le raccourci je devrais y arriver, ce que j'aimerais c'est que ce fameux raccourci développe tout les père et fils du fichier XML en une seule fois, mais je ne trouve pas la bonne méthode.

        Merci d'avance
        • Partager sur Facebook
        • Partager sur Twitter
          16 avril 2009 à 9:26:23

          Ha, alors, je ne vois pas.
          • Partager sur Facebook
          • Partager sur Twitter
            18 avril 2009 à 20:33:21

            Si j'ai bien compris, ce que tu cherches à faire, c'est lors du simple appuie sur la touche "*" que l'arbre se déplie. Si oui je continue sinon arrête moi.

            Bref, ce que tu n'arrives pas à faire actuellement c'est quoi ? la méthode pour tout développer, ou bien ajouter le raccourci pour cette dite fonction ?
            • Partager sur Facebook
            • Partager sur Twitter
              30 avril 2009 à 15:49:34

              arf je n'avais pas vu que tu avais répondu.
              Uih ce que je cherche à faire c'est "lors de l'appuie de la touche étoile, l'arbre se déplie.

              Et je ne sais pas par où commencer, cet à dire la méthode pour tout développer. Loin de moi l'idée de vouloir le code déjà tout fait, mais une piste me serait du plus grand aide

              merci d'avance

              EDIT : voilà où j'en suis.

              if (e.getKeyChar()=='*'){
              	TreePath path;
              	path= tree1.getSelectionPath();
              
                      while(){
                        tree1.expandPath(path);
                       }								
              }
              

              je suppose qu'il faut rajouter une boucle 'while' mais le while renvois true ou false donc j'ai une erreur m'indiquant path doit être transformer un boolean.

              EDIT2 : ok c'est bon problème réglé.
              voilà le code au cas où
              if (e.getKeyChar()=='*'){
              						
               for (int row = 0; row < tree2.getRowCount() ; row++) {
               tree2.expandRow(row);
               }
               for (int row = 0; row < tree1.getRowCount() ; row++) {
               tree1.expandRow(row);
               }
              


              Mon code marche pour deux arbres
              • Partager sur Facebook
              • Partager sur Twitter
                15 mai 2009 à 18:07:45

                Alors il y a deux choses qui me viennent à l'esprit.
                Si tu as un menu, ce qui est fort probable, tu ajoute une entrée dans le menu qui correspond à "tout déplier" et qui appellera ta fonction qui déplie tout !

                Si tu n'en a pas, et que tu ne veux pas en faire un juste pour ça, tu peux essayer de mettre un keyListener sur ta fenêtre qui, lorsqu'il recevra l'appuie de la touche étoile, effectuera le dépliage complet.

                keyListener est une interface, la fonction que tu devra absolument redéfinir de cette interface c'est "keyTyped".

                Allez un petit bout de code pour te faire voir ;)

                Si c'est dans une nouvelle classe :
                import java.awt.event.KeyEvent;
                import java.awt.event.KeyListener;
                
                public class MonListener implements KeyListener {
                
                	public void keyPressed(KeyEvent arg0) {}
                
                	public void keyReleased(KeyEvent arg0) {}
                
                	public void keyTyped(KeyEvent arg0) {
                		if(arg0.getKeyChar() == '*'){
                			//appel de ta fonction tout déplier.
                		}
                	}
                }
                

                Ensuite au niveau de ta jframe, tu as juste à écrire cela :
                MonListener ml = new MonListener();
                		f.addKeyListener(ml);
                


                Si tu écrit une classe anonyme interne (il me semble que c'est le nom) :
                public static void main(String[] args) {
                		JFrame f = new JFrame("ma frame");
                		// ... ce n'est qu'un exemple ici, tu l'adaptes à ton code bien sûr.
                		f.addKeyListener(new KeyListener(){
                			public void keyPressed(KeyEvent arg0) {}
                			public void keyReleased(KeyEvent arg0) {}
                			public void keyTyped(KeyEvent arg0) {
                				if(arg0.getKeyChar() == '*'){
                					//appel de ta fonction tout déplier.
                				}
                			}
                		});
                		// ...
                	}
                


                Voilà qui devrais t'aider un peu je pense ;)
                Si tu as pas compris ou que tu veux plus d'explications demande.
                • Partager sur Facebook
                • Partager sur Twitter
                  28 mai 2009 à 10:59:03

                  Désolé de te répondre que maintenant angemaster
                  Mon problème est résolu grâce à ton aide

                  merci encore
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Comment mettre un raccourci étoile

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown