Bonjour,
Je voudrais ajouter des composants à un JPanel à la manière d'un FlowLayout mais SANS passage à la ligne automatique et sans utilisé la méthode setBounds des composants que j'ajoute.
Voila, j'espère que quelqu'un aura une idée, merci.
Bonjour,
Je voudrais ajouter des composants à un JPanel à la manière d'un FlowLayout mais SANS passage à la ligne automatique et sans utilisé la méthode setBounds des composants que j'ajoute.
Voila, j'espère que quelqu'un aura une idée, merci.
Utilise un GridBagLayout :-S
chaque jour je viens, y'a des probleme avec les layout manager![]()
mais tu va avoir des probleme de toute facon.
si tu fais:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 GridBagConstraint gbc = new(); gbc.gridx = GBC.RELATIVE; gbc.gridy = 0; GridBagLayout gbc = new(); gbl.setConstraint(gbc); container.add(comp1) container.add(comp2) container.add(comp3) ...
tes composant vont avoir une taille. si le container est capable de leur donner leur taille prefere a tes composant il leur donnera. sinon, il leur donner leur taille minimale. si il est pas capable de donner les taille minimale et ben il commencera a effacer une partie de tes composant; mais il seront toujours sur une seule ligne. comme tu fixe gridy il changeront pas de ligne :-)
je sais pas si c clair![]()
Dans ce cas précis je pencherais plutôt pour un BoxLayout horizontal, plutôt que de directement sortir l'artillerie lourde... (Le BoxLayout le fait en deux coups de cuillère à pot, pas besoin de s'emmerder avec les constraints quand on peux les éviter)p
Sinok, adepte du moindre effort
D'ailleurs sur ce je vais piquer un roupillon
le resultat sera pas le meme si tu utilise le GridBagLayout ou le BoxLayout.
le GBL centrera tout dans le container (horizontal et vertical par default)
le BoxLayout (par default) alignera a gauche.
quand tu diminuera la taille du container le BoxLayout effacera les composant en commencant par le dernier ajouter.
le GBL diminuera petit a petit la taille du premier composant que tu a ajoute et quand y'aura plus moyen de l'afficher il l'effacera. puis diminuera la taille du suivant ...
mais ta raison BoxLayout c'est bien aussi :-)
Merci à vous deux pour vos réponses.
Vos deux méthodes fonctionnent dans les cas courants. Mais dans mon cas, les composants que j'ajoute à mon container sont redimensionnables. Je m'explique : j'ai des listener sur ces composants qui me permettent de les redimensionnés avec la souris en cours d'utilisation en modifiant leur preferredSize().
En utilisant l'une ou l'autre des deux méthodes cités plus haut, le redimensionnement fonctionne mal.
Au final je pense que je vais utiliser un Layout null et redimensioner mes composants avec la méthode setBounds() ou je vais peut etre faire mon propre LayoutManager.
J'ai finalement créer mon propre LayoutManager et ça fonctionne très bien.
Pour le créer je me suis inspirer du tutoriel de sun sur les CustomLayout:
http://java.sun.com/docs/books/tutor...ut/custom.html
Voila, merci encore pour vos précédentes réponses.
Partager