[Java] Resizer un JScrollPane ?

Resizer un JScrollPane ? [Java] - Java - Programmation

Marsh Posté le 13-10-2002 à 15:35:27    

J'ai un JScrollPane défini dans un JPanel avec TitledBorder, qui contient un JTree. J'aimerais bien que le JScrollPane se resize avec l'application, ce qui n'est pas le cas par defaut. Quand j'implemente un listener pour resizer le JScrollPane, le JPanel n'est pas mis a jour et le JScrollPane dépasse de la bordure ... comment faire ?

Reply

Marsh Posté le 13-10-2002 à 15:35:27   

Reply

Marsh Posté le 14-10-2002 à 21:49:33    

:bounce: :bounce: help ! :bounce: :bounce:

Reply

Marsh Posté le 15-10-2002 à 09:05:04    

donnes un code minimal qui montre ton pb ... stp

Reply

Marsh Posté le 17-10-2002 à 20:36:18    

En fait le probleme c'est que si je redimensionne la fenetre, mon scrollpane se redimensionne pas terrible, faut que je double-clique en plus quand le curseur est en mode resize (au bord de la fenetre) pour que ca marche pile-poil ... :??: :??:
 

Code :
  1. private void resizeTree() { // mon scrollpane contient un JTree
  2.  try {
  3.   int offset = (int)(tree.getLocationOnScreen().getY() - getLocationOnScreen().getY());
  4.   int newsize = getSize().height - offset - 10; // la taille que doit prendre mon JTree, en pixels
  5.   tree.setVisibleRowCount((int)(newsize / 16)); // conversion pixels > nombre de rows visibles
  6.   tree.revalidate();
  7.  } catch (IllegalComponentStateException ex) {
  8.   // RAB
  9.  }
  10. }


 
et j'ai evidemment mis un listener a ma frame pour choper l'evenement "resize":
 

Code :
  1. addComponentListener(new ComponentAdapter() {
  2.   public void componentResized(ComponentEvent e) {
  3.    resizeTree();
  4.   }
  5.  });


Message édité par Gonzoide le 17-10-2002 à 20:37:47
Reply

Marsh Posté le 18-10-2002 à 01:29:41    

En fait il semblerait que ca vienne du JTree : je lui assigne une nouvelle valeur pour VisibleRowCount, elle est bien prise en compte mais n'est pas envoyee au JScrollPane, et donc rien ne se passe ...

Reply

Sujets relatifs:

Leave a Replay

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