Impossible d'utiliser correctement un JSrollPane

Résolu
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009 - 14 juin 2007 à 12:38
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009 - 21 juin 2007 à 12:28
Bonjours à tous,

Aprés de nombreuse recherche sur l'utilisation de JScrollPane, je n'arrive toujours pas à le faire fonctionner ... Je doit oublier quelque chose car d'aprés les codes que j'ai pu lire, ça n'a pas l'air difficile!
C'est donc pourquoi je vous demande un peu d'aide!

Donc je vous explique, j'ai créé une frame, avec 3 composants: une barre de menu, une JProgressBar, et JTextePane. Tout marche comme je le veux, le JTextePane reçoit au fur et à mesure des phrases à afficher, il me manque juste l'insertion d'un scroll pour pouvoir voir tout ce qu'il a afficher au cour de la procédure.

Je vous copie le bout de code:

            // Zone de texte principale
            Menu menuDuProjet = new Menu();
            menuDuProjet.pane = new JTextPane();


            // Fenêtre principale
            JFrame frame = new JFrame("Projet Stage Lionel Mai/Juin 07"); 
            frame.setSize(508,535); 
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            frame.setLocationRelativeTo(frame.getParent()); // Pour centrer la fenêtre au centre de l'écran
           
            //Scrollbar 
            JScrollPane scroll = new JScrollPane(menuDuProjet.pane);
           
            //Placement manuel des différents composants
            frame.setLayout(null);
            
           //Coordonnées et tailles des composants
            menuDuProjet.pane.setBounds(0,0,500,455);
            jBar.setBounds(0,455,500,20);


            //Insertion des composants
            frame.add(menuDuProjet.pane);
            frame.add(jBar);
            frame.setJMenuBar(menuDuProjet.menuBar);
            frame.add(scroll, "CENTER")
            
           frame.setVisible(true);

Voila, voila, si quelqu'un pouvait me renseigner! J'ai déjà essayer pas mal de "bidouillage" mais ça ne marche pas, et je ne comprend pas!

Merci à vous!

24 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 19:01
Voici un code qui marche :
public class Test extends JFrame {

    public Test() {
        super();
        JTextArea text = new JTextArea();
        JScrollPane scroll = new JScrollPane(text);
        add(scroll);
        setSize(300, 300);
        setVisible(true);
    }
   
    public static void main(String[] args) {
        new Test();
    }

}
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 13:05
C'est quoi ce



frame.add(scroll, "CENTER") alors que tu est en layout null ???

Un bon conseil, utilise un BorderLayout pour ton interface au lieu de fixer les dimensions !

Sinon cà doit être :


frame.setJMenuBar(menuDuProjet.menuBar, BorderLayout.EAST);
frame.add(scroll, BorderLayout.Center)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 13:05
Oulà, désolé pour la grandeur des caractères, je freetextbox buggue !
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 juin 2007 à 13:12
J'ai essayer DarkSidious d'utiliser un BorderLayout, mais ma scroll ne se mettait toujours pas ...
Et au niveau de mon code, désolé du "CENTER", jl'ai copié sans réfléchir ;-)

Mais ça ne marche toujours pas ... Et je ne vois pas d'ou ça vient... Je suis vraiment bloqué à ce niveau, et c'est la dernière chose qu'il me manque pour finaliser mon projet de stage !

Une autre idée? Merci quand même de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 13:14
Ben pourtant ton code me paraît bon.

Hormis le truc du Menu :
Ton textpane est dans ton menu ? Y'a un truc que je pige pas à ce niveau là !

Menu menuDuProjet = new Menu();
menuDuProjet. pane = new JTextPane();
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 juin 2007 à 13:22
Non non, mon TextPane est en dessous du menu, Menu est le nom d'une de mes classes.
J'espere que tu comprend ce que je veux dire, car même moi je ne comprend pas tout, je viens de débuter Java!
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 juin 2007 à 13:34
Mince Dark ... je me suis mélanger ... scuse moi!

Je te recopie mon code tel qu'il est en ce moment:

            // Zone de texte principale
            Menu menuDuProjet = new Menu();
            JTextPane pane = new JTextPane();            // Fenêtre principale
            JFrame frame = new JFrame("Projet Stage Lionel Mai/Juin 07"); 
            frame.setSize(508,535); 
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            frame.setLocationRelativeTo(frame.getParent()); // Pour centrer la fenêtre au centre de l'écran
           
            //Scrollbar 
            JScrollPane scroll = new JScrollPane(pane);
           
            //Placement manuel des différents composants
            frame.setLayout(null);
            
           //Coordonnées et tailles des composants
            pane.setBounds(0,0,500,455);
            jBar.setBounds(0,455,500,20);

            //Insertion des composants
            frame.add(pane);
            frame.add(jBar);
            frame.setJMenuBar(menuDuProjet.menuBar);
           pane.add(scroll)
            
           frame.setVisible(true);

Voila, en rouge c'est ce qu'il change par rapport au premier.

Merci de ta compréhension
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 14:07
Ok, c'est déjà plus clair

enlève la ligne
frame.add(pane);

Et en théorie, ca doit être bon je pense (il faut rajouter le scrollpane à ton panel principal et non le textpane)
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 juin 2007 à 14:14
 Si s'était si simple ...!
Ca ne marche pas! Erreur:  adding container's parent to itself

Et voici à quelle ligne (celle en rouge):

           //Insertion des composants
            frame.add(jBar);
            frame.setJMenuBar(menuDuProjet.menuBar);
            pane.add(scroll);

Ca avait l'air tellement simple sur les exemples pourtant !
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 14:20
ah ben non ! j'avais pas fait gaffe :)

frame.add(scroll);
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 juin 2007 à 14:28
Bon ...

J'ai remplacé pane.add(scroll); parframe.add(scroll); et j'en arrive toujours au même point que lorsque j'essayait : La frame est grise (couleur de la scroll) et plus rien ne s'affiche dedans! En gros, il me semble que c'est une enorme scroll qui est affichée! Et mon TextePane est en dessous ;-)

Et je comprend pas pourquoi sa fait ça !!!!

Merci de ta patience en tout les cas Dark

Et au fait, génial ton jeu Mario !!!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
14 juin 2007 à 14:40
ben là je vois plus trop alors ! Je ferais des tests dans la soirée et je te tiens au courant.

P.S. : merci pour le jeu ;)
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 juin 2007 à 14:46
Ok pas de soucis, merci à toi c'est sympas !

Moi c'est déjà le 3ème jours que je passe du temps sur ça, et je n'y arrive toujours pas!

En tout cas, si quelqu'un d'autre à une idée, n'hésitez pas, j'en ai besoin!

Merci
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
14 juin 2007 à 21:46
Salut,

si ton composant est le seul de ta fenetre pourquoi ne pas faire simplement setContentPane(scroll) ???

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
15 juin 2007 à 09:10
Merci Dark, ca marche, mais seulement, c'est dans une nouvelle frame que se trouve le JTextArea ainsi que sa scroll !

 Et sinon, Twinuts, ce n'est pas le seul composant sur ma fenêtre

Merci a vous deux, j'y croit encore a ma scroll !!!
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
15 juin 2007 à 09:29
C'est juste un exemple pour te montrer, à toi d'adapter à ton projet.
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
15 juin 2007 à 10:24
Oui niquel, merci encore Dark de ta patience


Mais je ne comprend pas, pourquoi créer une méthode pour pouvoir inserer cette scroll, alors que le code que je mettait dans mon main était pareil? Tu saurais m'expliquer ça?! Ca reste un peu flou pour moi!


 


Merci encore a vous deux
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
20 juin 2007 à 08:20
Personne ne saurait m'expliquer ceci svp?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
20 juin 2007 à 08:34
C'est quoi que t'as as compris ?
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
20 juin 2007 à 15:29
Je ne comprend pas pourquoi il faut créer une méthode pour la JScrollBar, et pourquoi ne pas directement mettre le code dans la méthode main ?!


C'est sûrement bête, mais je ne comprend pas pourquoi !
0
Rejoignez-nous