Guide des différents agents de placement (Layout)
Une question qui revient souvent sur ce forum concerne la mise en page des composants graphiques au sein d'une application SWING / AWT.
Je propose d'utiliser ce sujet pour référencer tous les layouts qui peuvent sembler utiles aux applications graphiques AWT / SWING.
Si vous en connaissez qui ne sont pas dans la liste, merci de laisser des liens vers :
- une explication de son fonctionnement ;
- la librairie (.jar) contenant la classe à utiliser ;
- éventuellement une capture d'écran.
Vous pouvez aussi mettre un résumé des avantages / inconvénients de ce layout.
PS1 : j'éditerai mon post au fur et à mesure
PS2 : je ne sais pas si il y en a, mais si un layout est payant, merci de le préciser
PS3 : si vous avez des questions ou des problèmes concernant un layout, merci de créer un nouveau sujet.
Les layouts compris dans le jdk :
- BorderLayout [image] : place les composants en indiquant simplement leur emplacementde la façon NORD, SUD, EST, OUEST, CENTRE (layout par défaut des composants SWING)
- BoxLayout [image] : aligne les composants sur un axe vertical ou horizontal.
- CardLayout [image1 | image2] : superpose plusieurs jpanels et affiche celui désiré. Permet l'implémentation d'une interface à onglets.
- FlowLayout [image] : place les composants à la suite sur une ligne, puis sur une autre ligne si le conteneur n'est pas assez large.
- GridBagLayout [image] : place les composants dans un tableau de cellules de tailles variables. (très flexibles et puissants mais plutôt complexes à appréhender)
- GridLayout [image] : place les composants dans un tableau de cellules de tailles identiques.
- GroupLayout [image] : développé à l'origine pour les GUI builder (générateurs d'interface comme Matisse ou Visual Editor). Ce layout utilise 2 groupes correspondant à chaque dimension (verticale et horizontale), donc chaque composant doit être ajouté 2 fois pour définir sa place verticale et horizontale.
- SpringLayout [image1 | image2] : développé à l'origine pour les GUI builder (générateurs d'interface comme Matisse ou Visual Editor), permet de spécifier des relations/distances entre les différents composants.
Autres layouts :