Bonjour,
J'ai fait quelques recherches sur le forum mais aucun post ne correspond tout à fait à mon problème, même si Lady s'en approche pas mal.
Je souhaite faire un empilement de JPanels les uns en dessous des autres.
On ajoute des jPanel à la pile grâce à un bouton "ajouter".
Chacun des JPanel peut avoir une taille différente.
J'ai utilisé pour cela un BoxLayout. Mon problème est que lorsque j'ajoute un JPanel, celui-ci s'étends en hauteur, et je voudrais qu'il ne prenne que la place dont il a besoin afin que le suivant puisse se mettre à la suite.
Pour mieux comprendre, voici quelques photos de ce que j'ai:
le BoxLayout a un fond vert, et est encapsulé dans un JScrollPane pour permettre l'ajout de beaucoup de JPanels.
Le JPanel que j'ajoute a un fond rouge, mais est composé d'une toolbar grise et d'un panel blanc encadré en gris.
Le layout de ce JPanel est un FormLayout(JGoodies).
Voilà ce que j'obtient avec le BoxLayout vide:
Avec 1 panel d'ajouté:
Avec 2 panels d'ajoutés:
Ce que je voudrais obtenir avec 2 panels ajoutés:
Notons qu'ici j'a ajouté les 2 mêmes jPanels, mais je voudrais pouvoir ajouter des JPanels différents, qui auront des tailles différentes (que je ne peux connaitre à l'avance) et peut-être tous un layout différent.![]()
J'ai essayé également avec un simple JPanel ne contenant qu'un JLabel, il s'étendait au maximum également.
J'ai aussi essayé de remplacer le FormLayout par un BorderLayout et j'ai obtenu le même résultat.
Ma question revient donc à: Comment faire se réduire au maximum la taille des Jpanels, tout en gardant tout le contenu de visible ?
et une autre question, qui aura certainement son importance:
Si les composants d'un BoxLayout sont de taille différente, l'affichage se divisera en "cases" de la taille du plus gros composant ?
Merci beaucoup pour votre aide,
Partager