Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer le JTextPane dans un JscrollPane

comment faire ?

Sujet résolu
Anonyme
    23 mars 2010 à 16:25:29

    Bonjour à tous,

    Dans un JTabbedPane, j'ajoute un JScrollPane, ou j'avais auparavant ajouté a ce JscrollPane un JtextPane ( grosso modo afin de faire un 'auto-scroll' dans un JTextPane ).

    Malheuresement, plus tard dans le programme j'ai besoin d'accéder a ce JTextPane afin d'ajouter du texte .... Comment récupérer ce JTextPane ?

    Voici mon code :

    JTextPane zoneTexte = (JTextPane)((JScrollPane)chat.getComponent(k)).getComponent(0);

    Ou k correspond à l'indice du jscroll que je dois obtenir. j'ai essayé getComponent(0) pour récupérer mon JtextPane mais ca ne marche il me dis qu'il peut pas convertir un JviewPort en JTextPane : comment faire donc pour récupérer ce JTextPane ?

    Car si j'ai bien compris, j'ai :

    JTabbedPannel > JScrollPane > JTextPane donc en théorie je devrais pouvoir récupérer ce JTextPane ^^
    Merci à tous !!
    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2010 à 16:31:46

      Coucou! :D

      Ton composant est-il déclaré en champs de class?

      Si oui, tu peux y accéder partout à l'intérieur de ta classe, donc pas de souci pour le modifier par la suite :)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        23 mars 2010 à 16:33:32

        Malheureusement non car j'utile JTabbedPane et donc l'ajout de Jscroll+JTextPane dépend de l'utilisateur ... je n'ai donc pas de champ de class et c'est vrai que j'aimerai pouvoir accéder à mon JTextPane à partir de mon JTabbedPane ( et donc à travers mon JScrollPane )
        • Partager sur Facebook
        • Partager sur Twitter
          23 mars 2010 à 16:34:00

          private JTextPane selectedTextPane() {
                  JScrollPane scrollPane = (JScrollPane) tab.getSelectedComponent();
                  JViewport viewPort = scrollPane.getViewport();
                  return (JTextPane) viewPort.getView();
          }
          


          Personellement, j'aime mieux faire une méthode spécifique pour ça, car sinon je me perd avec les "cast". Donc, cette méthode retourne le JTextPane de l'onglet présentement sélectionné.

          Edit : En relisant ton premier post, peut-être serait-il mieux pour toi d'utiliser tab.getComponent(k), où tab représente ton JTabbedPane, et en passant k en paramètre. Comme ça tu peut acceder à n'importe quel JTextPane, et non seulement celui de l'onglet sélectionné.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            23 mars 2010 à 16:46:50

            Ok merci ca marche niquel ! en effet j'avais pensé a ajouté le k en param et de faire un getComponent(k) !!! merci +1 ! tu me dépannes large sur ce coup la car avant les scroll ca marchait mais je maitrise pas du tout les scrolls et donc j'étais perdu ! merci encore !

            private JTextPane selectedTextPane(javax.swing.JTabbedPane tab, int k) {
                    JScrollPane scrollPane = (JScrollPane) tab.getComponent(k);
                    //permet la récupération du coposant textePane dans le scroll
                    JViewport viewPort = scrollPane.getViewport();
                    return (JTextPane) viewPort.getView();
            }
            
            • Partager sur Facebook
            • Partager sur Twitter

            Récupérer le JTextPane dans un JscrollPane

            × 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