-
Alignements dans les box
Bonsoir,
dans mon interface graphique créée avec Swing, j'ai trois partie divisées en colonnes.
J'ai donc créé une Box horizontale.
A cette Box, j'ai ajouté trois Box verticales qui empilent les différents objets à afficher. Le souci c'est que la deuxième colonne comporte beaucoup d'éléments.
Mes problèmes sont les suivants :
- Ma première colonne contient un JTree dans un ScrollPane qui a la même hauteur que la colonne du milieu, ce qui est ridicule. Mais lorsque j'ajoute "setMaximumSize", mon ScrollPane s'aligne au milieu de la deuxième colonne et je n'arrive pas à le faire remonter avec un "setAlignementY".
- Pour ma deuxième colonne qui est plus haute que ma fenêtre, j'aimerai ajouter un ascenseur pour que ça ne déborde plus de la fenetre. Mais je ne sais pas comment faire :(
- Ma troisième colonne comporte un seul bouton pour l'instant, qui est aligné au milieu de la deuxième, comment le remonter au TOP ???
Merci par avance...
-
Bonjour,
d'après les contraintes que tu recherches, peut-être qu'un GridBagLayout serait plus adapté à ce que tu recherches, plutôt qu'une Box horizontale. Une Box cherche à centrer les composants, alors qu'un GridBagLayout laisse le choix de les étirer ou non, et de les placer en haut/bas/gauche/droite/centre de leur emplacement.
Concernant la deuxième colonne, il faut la mettre dans un JScrollPane, et ajouter le JScrollPane au conteneur (Box horizontale ou autre).
-
Bonjour,
merci pour les réponses.
J'avais essayé JScrollPane mais je l'avais mal placé :s.
Le GridBagLayout m'a l'air très bien, mais il est difficile à utiliser. Si m deuxième colonne n'est pas trop grande, tout ce place plus ou moins comme je le souhaite.
Merci
-
Euh, en fait j'en oublie les bases. Pour les 3 colonnes, un BorderLayout ira très bien (si tu restes à 3 colonnes). Dedans, tu peux mettre le JTree directement à gauche, le JScrollPane au centre (pour la 2e colonne), et un JPanel peut-être en FlowLayout à droite ?
Sinon, le GridBagLayout demande en effet un peu de temps pour la prise en main mais n'est pas mal du tout.