Layouts Java AWT

Dispositions Java AWT

La bibliothèquejava.awt fournit 5 mises en page de base. Chaque mise en page a sa propre signification et toutes sont complètement différentes. Ici, dans cet article, nous verrons comment appliquer n'importe quelle disposition à un cadre ou à un panneau et discuterons également de chaque disposition en bref.

Les 5 dispositions disponibles dans la bibliothèquejava.awt sont:

  1. Disposition des bordures

  2. Disposition de la grille

  3. Disposition GridBag

  4. Disposition des cartes

  5. Disposition du flux

1. Disposition des bordures

LeBorderLayout est une mise en page qui organise les composants en termes de direction. Une disposition de bordure divise le cadre ou le panneau en 5 sections - Nord, Sud, Est, Ouest et Centre. Chaque composant peut être organisé dans une direction particulière en passant un argument supplémentaire.

BorderLayoutExample.java

package com.example;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Label;
import javax.swing.JFrame;

public class BorderLayoutExample extends JFrame {

    public static void main(String[] args) {
        BorderLayoutExample a = new BorderLayoutExample();
    }

    public BorderLayoutExample() {

        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        BorderLayout b = new BorderLayout();
        setTitle("Border Layout");

        setSize(300, 300);
        add(new Button("North"), BorderLayout.NORTH);
        add(new Button("South"), BorderLayout.SOUTH);
        add(new Button("East"), BorderLayout.EAST);
        add(new Button("West"), BorderLayout.WEST);
        add(new Button("Center"), BorderLayout.CENTER);

    }
}

Sortie

awt-borderlayout

2. Disposition de la grille

UnGridLayout est une manière plus organisée d'organiser les composants. Il divise le cadre ou le panneau sous la forme d'une grille contenant des cellules uniformément réparties. Chaque composant est ajouté à une cellule particulière. L'ordre de placement des composants dépend directement de l'ordre dans lequel ils sont ajoutés au cadre ou au panneau. L'image ci-dessous montre une trame basée sur leGridLayout à 2 colonnes et 3 lignes.

Les arguments du constructeurGridLayout(int row,int cols) déterminent la taille de la grille.

GridLayoutExample.java

package com.example;

import java.awt.Button;
import java.awt.GridLayout;
import javax.swing.JFrame;

public class GridLayoutExample extends JFrame {

    public static void main(String[] args) {
        GridLayoutExample a = new GridLayoutExample();
    }

    public GridLayoutExample() {

        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        GridLayout g = new GridLayout(3, 2);
        setLayout(g);
        setTitle("Grid Layout");
        setSize(300, 300);
        add(new Button("Button 1"));
        add(new Button("Button 2"));
        add(new Button("Button 3"));
        add(new Button("Button 4"));
        add(new Button("Button 5"));
        add(new Button("Button 6"));

    }

}

Sortie

awt-gridlayout

3. Disposition GridBag

LeGridBagLayout est la mise en page la plus flexible qui offre une manière organisée mais flexible d'organiser les composants. Il offre aux développeurs la possibilité de choisir l'emplacement exact du composant, dans une grille, sa portée de ligne et de colonne, ainsi que l'écart horizontal et vertical. L'image ci-dessous montre unGridBagLayout. Il contient le bouton 5 qui s'étend sur 2 lignes à la fois.

GridBagLayoutExample.java

package com.example;

import java.awt.Button;
import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JFrame;

public class GridBagLayoutExample extends JFrame {

    public static void main(String[] args) {
        GridBagLayoutExample a = new GridBagLayoutExample();
    }

    public GridBagLayoutExample() {
        setSize(300, 300);
        setPreferredSize(getSize());
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        GridBagLayout g = new GridBagLayout();
        GridBagConstraints gbc = new GridBagConstraints();
        setLayout(g);
        setTitle("GridBag Layout");

        GridBagLayout layout = new GridBagLayout();

        this.setLayout(layout);

        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.gridx = 0;
        gbc.gridy = 0;
        this.add(new Button("Button 1"), gbc);

        gbc.gridx = 1;
        gbc.gridy = 0;
        this.add(new Button("Button 2"), gbc);

        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.ipady = 20;
        gbc.gridx = 0;
        gbc.gridy = 1;
        this.add(new Button("Button 3"), gbc);

        gbc.gridx = 1;
        gbc.gridy = 1;
        this.add(new Button("Button 4"), gbc);

        gbc.gridx = 0;
        gbc.gridy = 2;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.gridwidth = 2;
        this.add(new Button("Button 5"), gbc);

    }
}

Sortie

awt-gridbaglayout

4. Disposition des cartes

C'est la disposition qui est rarement utilisée et qui est utilisée pour empiler les composants les uns au-dessus des autres. LeCardLayout permet aux composants de rester les uns sur les autres et de basculer n'importe quel composant vers l'avant selon l'exigence. Décrire la disposition de la carte à l'aide d'une image n'aurait aucun sens. Par conséquent, comprenons-le avec un petit exemple. Considérez le code ci-dessous:

mychoice.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            CardLayout cardLayout = (CardLayout)(e.getTarget().getParent().getLayout());
            cardLayout.show(panel, (String)e.getItem());
         }
      });

Le code ci-dessus est associé à un écouteur d'événements avec une zone de liste déroulante. Selon le changement de valeur du combo, le composant est affiché. Afin de créer une disposition de carte, vous pouvez utiliser le code ci-dessous

CardLayoutExample.java

package com.example;

import java.awt.Button;
import java.awt.CardLayout;
import javax.swing.JFrame;

public class CardLayoutExample extends JFrame {

    public static void main(String[] args) {
        CardLayoutExample a = new CardLayoutExample();
    }

    public CardLayoutExample() {

        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        CardLayout g = new CardLayout();
        setLayout(g);
        setTitle("Card Layout");

        setSize(300, 300);
        add(new Button("Button 1"));
        add(new Button("Button 2"));
        add(new Button("Button 3"));
        add(new Button("Button 4"));
        add(new Button("Button 5"));
        add(new Button("Button 6"));

    }
}

Sortie

awt-cardlayout

5. Disposition du flux

Comme son nom l'indique,FlowLayout est la disposition qui permet aux composants de s'écouler vers et la fin de la partie visible est atteinte. UnFlowLayout aide essentiellement à développer une interface utilisateur plus réactive et à conserver les composants d'une manière fluide. L'image ci-dessous montre une disposition de flux réelle avec 6 composants.

Comme il s'agit de la disposition par défaut pour un cadre ou un panneau, il peut également fonctionner sans appliquer explicitement la disposition.

FlowLayoutExample.java

package com.example;

import java.awt.Button;
import java.awt.FlowLayout;
import javax.swing.JFrame;

public class FlowLayoutExample extends JFrame {

    public static void main(String[] args) {
        FlowLayoutExample a = new FlowLayoutExample();
    }

    public FlowLayoutExample() {

        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        FlowLayout g = new FlowLayout();
        setLayout(g);
        setTitle("Flow Layout");
        setSize(300, 300);
        add(new Button("Button 1"));
        add(new Button("Button 2"));
        add(new Button("Button 3"));
        add(new Button("Button 4"));
        add(new Button("Button 5"));
        add(new Button("Button 6"));

    }
}

Sortie

awt-flowlayout

Conclusion

Cet article a discuté des dispositions AWT disponibles. La discussion a été faite très brièvement. Par conséquent, certains liens fournis dans les références peuvent vous aider à en savoir plus.