Bonjour,

*****************
*....a.........|...........*
* ======= |...........*
*...............|.....c....*
*...b..........|...........*
*****************


J'ai mon ihm decomposée comme ceci :

1 jsplitPane (split1) avec à droite un JPanel c et a gauche un jpanel lui même contenant un jsplitpane (split2)
split2 est composé deux deux panels a et b.

Mon panel a doit pouvoir etre scrollé horizontalement lorsque split1 est deplacé vers la gauche et que l'espace n'est plus suffisant pour l'afficher en entier. En revanche, si l'espace vertical est insuffisant pour a, je ne veux pas qu'apparaisse de scrollbar vertical, je veux que ce soit le split2 qui se decale vers le bas.


Pour cela j'ai essayé d'implementer a avec un panel qui implémente Scrollable avec getScrollableTracksViewportWidth() qui renvoit false et getScrollableTracksViewportHeight() qui renvoit true. Lorsque je deplace split1, je declenche un resetToPreferedSize() sur le jsplit2 en esperant qu'il se positionne bien entre a et b.

Le problème est que le resetToPreferedSize() se base sur les preferedSize des panels a et b mais ne tient pas compte de la scrollbar horizontale de a.
Du coup mon panel a ne dispose pas d'assez d'espace vertical pour s'afficher en entier.

Est-ce qu'il y aurait un moyen de faire un resetToPreferedSize() qui prendrait en compte le fait que a dans certain cas possède une scrollbar horizontal et a donc besoin d'un peu plus d'espace ? ou est-ce que je suis engagé dans une mauvaise direction ?

J'espère avoir été clair
merci.