Médiaforma

Java – Mise en page FlowLayout

Print Friendly

La mise en page la plus simple (c’est également celle qui est utilisée par défaut) correspond à la classe FlowLayout.

Le constructeur de la classe FlowLayout admet trois syntaxes :

public FlowLayout();
public FlowLayout(int align);
public FlowLayout(int align, int hgap, int vgap);

Dans le premier cas, les objets sont centrés dans l’espace qui leur est réservé.

Dans le deuxième cas, le paramètre align indique l’alignement des objets. Il peut prendre l’une des trois valeurs suivantes :

  • FlowLayout.LEFT;
  • FlowLayout.CENTER;
  • FlowLayout.RIGHT;

Dans le troisième cas, le paramètre align indique toujours l’alignement des objets. Les paramètres hgap et vgap correspondent respectivement à l’espacement horizontal et vertical (en pixels) des objets.

Exemples :

Ce premier exemple utilise l’alignement et l’espacement par défaut. Ici, la fenêtre fait 300×150 pixels. Un JButton, un JLabel et un JTextField sont ajoutés dans un JPanel.

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class FLayout extends JFrame{
    public FLayout(){
        this.setTitle("Flow Layout");
        this.setSize(300, 150);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null); //Centre fenêtre dans écran
        JPanel container = new JPanel();
        container.setLayout(new FlowLayout());
        container.add(new JButton("un JButton"));
        container.add(new JLabel("un JLabel"));
        container.add(new JTextField("un JTextField"));
        this.setContentPane(container);
        this.setVisible(true);
    }
    public static void main(String[] args) {
        FLayout fl = new FLayout();
    }
}

Le constructeur de la classe FLayout commence par définir les caractéristiques de la fenêtre :

this.setTitle("Flow Layout");
this.setSize(300, 150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null); //Centre fenêtre dans écran

Il définit ensuite un conteneur JPanel et indique que la mise en page sera de type FlowLayout:

JPanel container = new JPanel();
container.setLayout(new FlowLayout());

Puis y ajoute un JButton, un JLabel et un JTextField :

container.add(new JButton("un JButton"));
container.add(new JLabel("un JLabel"));
container.add(new JTextField("un JTextField"));

Le panel est enfin affecté à la fenêtre et la fenêtre est affichée :

this.setContentPane(container);
this.setVisible(true);

La méthode main() se content d’instancier la classe FLayout :

public static void main(String[] args) {
    FLayout fl = new FLayout();
}

Voici le résultat :

 

 

Exercice

Entrainez-vous à :

  1. Créer un FlowLayout aligné à gauche.
  2. Créer un FlowLayout aligné à gauche et dont les éléments sont espacés de 50 pixels horizontalement de 30 pixels verticalement.

Solution

Il suffit d’utiliser les deux autres constructeurs de la méthode setLayout() :

container.setLayout(new FlowLayout(FlowLayout.LEFT));
container.setLayout(new FlowLayout(FlowLayout.LEFT, 50, 30));
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply