Java
Swing :: Layout Manager
Introduction
Le layout est un gestionnaire de placement de vos composants.
Si vous ne spécifiez aucun layout, celui utilisé par défaut est le FLowLayout.
Si nous souhaitions placer nous même nos composants avec des coordonnées choisis via un setBounds() alors, il nous faudrait annuler le layout comme ceci :
setLayout(null);
les layouts pour la librairie Swing sont :
  • FlowLayout : placement en ligne(s).
  • GridLayout : placement en grille;
  • BorderLayout : placement en 5 positions(nord, sud, est, ouest, centre)
  • CardLayout : plusieurs contenus pour un emplacement, tour ` tour.
FlowLayout
Le FlowLayout ajoute les éléments les uns à la suite des autres en commençant par les centrer. Une fois la ligne remplie d'éléments, il passe à la ligne suivante.
Le FlowLayout demander des parametres de positionnement, d'espace horizontal et vertical entre chaque composant.
On peut définir les dimensions propres aux éléments par un setPreferredSize().
maFenetre = new JFrame("FlowLayout"); Container contenu = maFenetre.getContentPane(); FlowLayout c =new FlowLayout(FlowLayout.CENTER,50,20); contenu.setLayout(c); legendGauche = new JLabel(""); boutNouveau = new JButton("Nouveau"); boutNouveau.setPreferredSize(new Dimension(100,40)); boutNouveau.addActionListener(actionNouvelParti); boutQuit = new JButton("Quit"); boutQuit.setPreferredSize(new Dimension(100,40)); boutQuit.addActionListener(actionQuitter); contenu.add(boutNouveau); contenu.add(boutQuit); contenu.add(legendGauche);
Exemple :
GridLayout
Le GridLayout ajoute les éléments dans une grille comme le montre le schéma ci-dessous :
maFenetre = new JFrame("GridLayout"); Container contenu = maFenetre.getContentPane(); FlowLayout c =new GridLayout(2,3); contenu.setLayout(c); bout1=new JButton("Bouton 1"); bout2=new JButton("Bouton 2"); bout3=new JButton("Bouton 3"); bout4=new JButton("Bouton 4"); bout5=new JButton("Bouton 5"); bout6=new JButton("Bouton 6"); contenu.add(bout1); contenu.add(bout2); contenu.add(bout3); contenu.add(bout4); contenu.add(bout5); contenu.add(bout6);
Exemple :
BorderLayout
Le borderLayout comprend 5 zones réparties comme sur le schéma ci-dessous :
maFenetre = new JFrame("BorderLayout"); Container contenu = maFenetre.getContentPane(); BorderLayout c =new BorderLayout(); contenu.setLayout(c); nord=new JLabel("Nord"); sud=new JLabel("Sud"); est=new JLabel("Est"); ouest=new JLabel("Ouest"); centre=new JLabel("Centre"); contenu.add(nord,c.NORTH); contenu.add(sud,c.SOUTH); contenu.add(est,c.EAST); contenu.add(ouest,c.WEST); contenu.add(centre,c.CENTER);
Exemple :
CardLayout
Le CardLayout permet de changer le contenu du container
public CardLayout repartiteur; public PanneauFichier panneauExecution; public PanneauParam panneauParam; //Fenetre d'affichage panneauExecution = new PanneauFichier(); panneauExecution.setName("Execution"); panneauParam = new PanneauParam(); panneauParam.setName("Parametre"); contenu.add(panneauExecution,panneauExecution.getName()); contenu.add(panneauParam,panneauParam.getName()); public class ActionAfficher implements ActionListener{ public void actionPerformed(ActionEvent ev){ if(ev.getSource()==mExecution){ //Panneau Execution repartiteur.show(maFenetre.getContentPane(),panneauExecution.getName()); }else if(ev.getSource()==mParametre){ //Panneau Parametre repartiteur.show(maFenetre.getContentPane(),panneauParam.getName()); } } }
Imprimer
Notez cette page

S'il vous plait, prenez un moment pour remplir ce formulaire pour nous aider à mieux vous servir.

12345

    :: Ajouter aux favoris :: Contact