Bonjour,
cela fait une semaine que je me débats avec divers layout manager pour réaliser l'affichage d'un JPanel et je n'arrive à rien. j'ai essayé boxlayout, flowlayout, gridBagLayout, formLayout, springLayout ...
Voici donc le problème qui ne me parait pourtant pas si compliqué.
- Un JScrollPane avec une largeur fixe (350 pixels pour être précis).
- Dedans un JPanel (panneau) qui contient une succession de JPanel (pan_1 à pan_n, le nombre de panneau est déterminé dynamiquement) qui s'empilent de haut en bas.
- La scrollBar vertical permet d'accéder aux pan qui débordent vers le bas (utilisation classique donc).
Chaque panneau pan_i
- a une bordure avec titre
- contient des lignes composées d'un JLabel et d'un JTextArea.
- Le JLabel est à gauche du JTextArea avec un alignement à droite.
- La largeur des labels est égale à la plus grande largeur des labels du panneau.
- Le JTextArea occupe le reste de l'espace à droite du JLabel, donc chaque ligne fait la même largeur (les 350 pixels de largeur du JScrollBar environ).
- Les JTextArea peuvent être sur plusieurs lignes. Dans ce cas, au delà de cinq lignes, un ScrollBar permet de se déplacer dans le texte.
- Dans le cas de plusieurs lignes j'aimerai que le JLabel soit centré verticalement sur la hauteur du JTextArea.
- L'espace entre chanque pan_i est fixe.
Je sais faire chaque contrainte indépendamment des autres avec le layout qui convient. Mais je n'arrive pas à trouver un layout permettant toutes ces contraintes et pourtant je suis à peu près sûr que c'est possible.
Quelqu'un peut m'expliquer comment faire (et surtout la démarche pour choisir le bon layout pour cela) ? Bien entendu j'ai lu (et relu plusieurs fois les articles de Developpez. com sur les gestionnaires de placement ainsi que ceux d'autres sites d'ailleurs, ainsi que l'article de Oracle "Laying Out Components Within a Container".
Je ne sais pas si cela a une quelconque utilité pour la résolution du problème mais j'utilise le L&F nimbus car le rendu du L&F metal avec Windows 10 me déplait vraiment.
Je joins un exemple de ce que j'obtiens quand mes JTextArea n'ont qu'une ligne. C'est ce que je voudrai mais dés qu'un de mes JTextArea a plus de trois lignes, cette belle présentation est perdue et plus rien ne marche.
![]()
Partager