petit pb avec JScrollPane

petit pb avec JScrollPane - Java - Programmation

Marsh Posté le 25-04-2003 à 21:57:46    

Salut tout le monde.  
 
voila comme c'est marqué dans le titre j'ai un petit probleme avec une JScrollpane. en faite je vois pas trop bien comment ça marche mais je suis quazi sur que c'est ça k'il me faut. bon j'ai quand meme chercher dans l'API pour voir un peu ce que ça donnais.
et j'en suis arriver la:

Code :
  1. private void createBag(){
  2. bag = new JLabel();
  3. bagLayout = new GridLayout(2,2);
  4. bag.setLayout(bagLayout);
  5. bag.setBounds(0,0,100,100);
  6.         //methode qui remplie de bouton mon Jlabel bag.
  7. createItemBag();
  8. scrollBag = new JScrollPane();
  9. scrollBag.setLayout(new ScrollPaneLayout());
  10. scrollBag.setBounds(10,10,100,100);
  11. scrollBag.add(bag);
  12.         // j'ajoute à mon label, ma scrollpane.
  13. add(scrollBag);
  14.     }


 
cette charmante methode est appelé à chaque fois que j'appuis sur une touche.
bon en gros, j'aimerais que bag s'affiche tout le temps. or la il s'affiche meme pas. si je fais un
  scrollBag.updateUI();
ça me fais un rafrechissement un peu byzarre. mes boutuon n'apparaisse que qd je clic dessus et en plus au premier clic je ne peu clicer que sur le premier boutuon. les autre reste cacher, les autre devienne activable qu'a partir du 2eme clic.
voila je seche un peu en definitive, et j'ail'impresssions de pas mal bricoler, ce que je n'aime pas. si on pouvais me donner au moins quelque piste cela m'aiderais beaucoup. voila a+


Message édité par Lunatik3 le 25-04-2003 à 22:05:06
Reply

Marsh Posté le 25-04-2003 à 21:57:46   

Reply

Marsh Posté le 26-04-2003 à 09:51:06    

bon vu le succes sans precedent de mon topic, je vais essayer de faire plus simple. est ce que kelk'un peu m'expliquer en gros comment ça marche les JScrollPanes et JScrollbar.  
j'aimerais juste faire une case ds laquel, je puisse faire defiler mon JLabel en scroll. je sais ça peu paraitre simple comme ça, d'ailleur ça doit vraiment etre un truc con de chez con mais la comme ça, je doit mal mis prendre et j'aurais aimer que quelqu'un puisse me remettre au moins sur la voie.  
voila merci d'avance.

Reply

Marsh Posté le 26-04-2003 à 16:14:07    

Il doit etre super gros ton JLabel... c pas un JPanel plutot ?
 
bon sinon, perso j'utilise le constructeur suivant:
 
monScrollPane = new JScrollPane(monTrucAAfficherDansLeScrollPane);
 
ouala

Reply

Marsh Posté le 26-04-2003 à 20:10:41    

alors j'ai une scroll qui marche. mais je sais pas pourkois qd je mets un Jpanel dedans il chie total mon gridLayout. au lieu d'avoir 2 colonne 2 ligne j'ai une colonne deux lignes. pourkoi, je sais pas.
en plus qd ma classe je la met en extends JPanel au leiu de JLabel. et bien le setSize de mon JScrollpane il s'en fou.
en plus j'ai toujours un un trés gros probleme. qd je lance mon application tous marche nikel , ma scrollpane est bien la, et son contenu aussi.
maintenat qd j'appuie sur une touche et bien ça me deplace un personnage (ça c une autre partie du programme), mais ça supprime tous le contenu du JScrollpane, alors que j'appelle les memes methodes qui mon permis de construire le contenu  au lancement de l'application.
la faut dire je suis totalment perdu. j'essaye de bidouiller par ci par la mais ça marche pas des masses.
dc si vous plaie, help me.
voila

Reply

Marsh Posté le 27-04-2003 à 16:47:44    

C'est normal, il faut savoir qu'avec un JScrollPane, ce n'est pas le composant que tu mets dedans qui est affiche, mais une vue de ton composant au moment de l'instanciation. Une fois que tu as construit ton JScrollPane, tu peux faire ce que tu veux avec ton composant, ca changera rien, il faut que tu recupere ce qui est affiche a partir du JScrollPane, ou alors que tu reinitialises ton JScrollPane avec ton composant originel apres modifications.
 
J'ai ete clair ? j'en doute, ce n'est pas tres clair dans ma tete non plus, mais je crois que c'est ca malgre tout. Sur le site de Sun, il expliquent plutot bien (normal :lol:) comment agit un JScrollPane

Reply

Marsh Posté le 27-04-2003 à 19:40:03    

alors merci de ta reponse. alors en faite j'ai deja esssayer de tout reconstruire en meme temps ds la methode du premier topic. j'appelle cette methode plusieur fois. mais le rafraichissement est foireux, comme je l'explique ci dessus.
alors la faut bien dire que je suis un petit peu perdu. sinon j'irai voir les tuts de sun sur le sujet. j'espere que ça apportera des elements de reponse. merci

Reply

Marsh Posté le 17-05-2009 à 15:41:52    

Salut,
 
Je n'ai pas tellement le tps de lire tout le topic, mais j'ai peut-être une piste qui pourra servir à certains : pendant un projet, j'ai rencontré un problème de rafraîchissement d'un JScrollPane dans lequel je mettais le viewport égal à un jpanel rempli de trucs divers. Le scrollpane était lui-même ajouté à une interface avec un GridbagLayout.  
 
La solution est de mettre le panel dans un autre panel vide dont on laisse toutes les options par défaut, dont notamment le flowLayout.
 
Ensuite on ajoute le nouveau panel au scrollPane. Puis le scrollPane au GridLayout ou GridBagLayout que l'on utilise, et ça marche nickel.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed