JScrollPane(JPanel) = marche pô!

JScrollPane(JPanel) = marche pô! - Java - Programmation

Marsh Posté le 19-11-2004 à 15:59:30    

Salut,
 
J'ai un probleme avec la classe JScrollPane.
 
Je l'ai deja utilisé pour scroll un JTextArea et la pas de probleme ( new JscrollPane(new JTextArea())  )
 
J'ai essayé de faire la meme chose avec un JPanel : new JscrollPane(new JPanel())
Mais ca marche pas!
Mon JPanel est plus grand que le JScrollPane, donc il devrait afficher les barres de scroll, mais elles n'y sont pas. J'ai essayé de forcer la barre de scroll (setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS)). Ca m'affiche bien la barre mais je ne peut pas scroller mon JPanel.
 
J'ai du manquer quelquechose...
Si vous avez une piste.
Merci d'avance

Reply

Marsh Posté le 19-11-2004 à 15:59:30   

Reply

Marsh Posté le 19-11-2004 à 17:01:56    

je dis peut etre une connerie , mais il me semblait que JScrollPane ne fonctionne directement qu'avec certains composants ( JList, Jtable JTextArea et JTree )  
 
pour les autres je ne sais pas ( mais le reponse m'interesserai )

Reply

Marsh Posté le 19-11-2004 à 20:42:25    

Ca expliquerait pourquoi ca marche pas chez moi alors...
 
tu veux dire quoi par : "ne fonctionne pas directement"? on peut le faire marcher en s'y prennant autrement?

Reply

Marsh Posté le 19-11-2004 à 20:49:56    

y faut pas un composant qui sache gérer sa vue ? y'a une histoire de viewport à créer...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 19-11-2004 à 20:55:25    

on peut avoir un screenshot ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-11-2004 à 22:56:51    

quel layout gere tout ca ?

Reply

Marsh Posté le 22-11-2004 à 08:17:43    

new JScrollPane().getViewPort().add(new Panel())

Reply

Marsh Posté le 22-11-2004 à 08:34:38    

Si je fais comme ça (Comme l'a suggéré Miles V), ça me donne exactement la même chose.

Reply

Marsh Posté le 22-11-2004 à 08:39:01    

nraynaud a écrit :

on peut avoir un screenshot ?


 
ftp://mon-pc.no-ip.org/forum.hardware/screenshot-pbJScrollPane(JPanel).GIF
 
Voilà!
 
Le gros cadre noir c'est mon JScrollPane. Il contient un JPanel (plus grand en hauteur). On peut aprecevoir le debut d'un JLabel tout en bas... Il y a d'autres JLabel encore en dessous mais on peut pas les voir.
 
ps: je sais, ça rame mon ftp! désolé, laissez la fenetre ouverte et revenez voir le screenshot apres manger! ;-)


Message édité par ruready le 22-11-2004 à 08:40:33
Reply

Marsh Posté le 22-11-2004 à 11:47:40    

En fait, JPanel n'implemente pas Scrollable. Il faut donc creer sa propre classe JPanel implementant Scrollable.
 
Bon, en pratique, j'ai fait ça... mais j'arrive toujours pas a le faire marcher : mon JPanel est vide!!! (alors qu'il y a bien des trucs dedans!!!)
 
Keep on galering...

Reply

Marsh Posté le 22-11-2004 à 11:47:40   

Reply

Marsh Posté le 22-11-2004 à 12:33:46    

tu as essayé de faire JPanel.setMinimumSize( Dimension ) ?


Message édité par fb@alphalog le 22-11-2004 à 12:33:53
Reply

Marsh Posté le 22-11-2004 à 17:59:26    

heuuu je ne vois pas le problème, ca marche tres bien :  
http://img88.exs.cx/img88/6821/Capture-2.jpg
 
tu dois avoir un problème de layout plutot, mais là sans voir le code...

Reply

Marsh Posté le 22-11-2004 à 18:02:13    

en gros :  

Code :
  1. jContentPane = new javax.swing.JPanel();
  2. jContentPane.setLayout(new java.awt.BorderLayout());
  3. jContentPane.add(getJScrollPane(), java.awt.BorderLayout.CENTER);
  4. ...
  5. getJScrollPane() :
  6. jScrollPane = new JScrollPane();
  7. jScrollPane.setViewportView(getJPanel());
  8. ...
  9. getJPanel() :
  10. jPanel = new JPanel();
  11. jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS));
  12. jPanel.add(getJButton(), null);
  13. jPanel.add(getJButton1(), null);
  14. jPanel.add(getJButton2(), null);
  15. jPanel.add(getJButton3(), null);
  16. les getJButton faisant des new JButton("toto" );


Message édité par zerod le 22-11-2004 à 18:03:02
Reply

Marsh Posté le 22-11-2004 à 20:13:02    

ruready a écrit :

En fait, JPanel n'implemente pas Scrollable. Il faut donc creer sa propre classe JPanel implementant Scrollable.

non non, tu as mal lu la doc.
 
je peux voir le code qui va avec le screenshot ? je te soupçonne d'avoir touché aux preferredBidule, me trompe-je ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 22-11-2004 à 23:14:09    

oui ca doit etre ca, il a du fixer preferedSize ;)

Reply

Marsh Posté le 23-11-2004 à 12:16:45    

[:alex_]
 
Je crois que je vais me faire tapper dessus :
 

Code :
  1. MonPanelQuiEstDansLeJScrollPane.setLayout(null);


Message édité par ruready le 23-11-2004 à 12:17:06
Reply

Marsh Posté le 23-11-2004 à 15:11:30    

:lol:  
ah bein vi evidemment ;)

Reply

Sujets relatifs:

Leave a Replay

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