Java AWT - Rectangle, ligne et cercle de dessin

Java AWT - Dessin d'un rectangle, d'une ligne et d'un cercle

Les bibliothèquesjava.awt sont un ensemble de classes fournies par Java afin de dessiner des formes sur une fenêtre. L'abréviation AWT signifie Abstract Windowing Toolkit. Aujourd'hui, la bibliothèque a été convertie en un énorme ensemble de classes qui permet à l'utilisateur de créer une application entièrement basée sur une interface graphique. L'apparence visuelle de ces classes dépend de la plate-forme sur laquelle l'application s'exécute.

La plus élémentaire de toutes les classes est la bibliothèquejava.awt.geom qui est utilisée pour dessiner des formes géométriques simples. Cet article explique le code pour dessiner des formes simples comme Rectangle, Ligne, Cercle, etc.

JFrame & JPanel
JFrame etJPanel sont des classes appartenant àjavax.swing libraries. La bibliothèque Swing est créée au-dessus de la pile de bibliothèques AWT. JFrame est une fenêtre comme un conteneur qui contient les différents composants ensemble dans une fenêtre. JPanel est un conteneur qui s'insère à l'intérieur d'unJFrame et aide au regroupement des composants.

Ici, dans le code ci-dessous, nous avons utiliséJFrame etJPanel pour contenir nos objets de forme.

Exemple de dessin AWT

Passons maintenant au sujet principal du dessin de formes à l'aide des bibliothèques AWT. Cepage montre les différentes classes disponibles pour dessiner des formes. Le nom des classes explique clairement quelles sont les formes possibles qui peuvent être dessinées.

DrawShapes.java

package com.example;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class DrawShapes extends JFrame {

    private static final long serialVersionUID = 1L;

    public DrawShapes() {

        setSize(new Dimension(320, 320));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);

        JPanel p = new JPanel() {
            @Override
            public void paintComponent(Graphics g) {
                Graphics2D g2 = (Graphics2D) g;
                Shape line = new Line2D.Double(3, 3, 303, 303);
                Shape rect = new Rectangle(3, 3, 303, 303);
                Shape circle = new Ellipse2D.Double(100, 100, 100, 100);
                Shape roundRect = new RoundRectangle2D.Double(20, 20, 250, 250, 5, 25);
                g2.draw(line);
                g2.draw(rect);
                g2.draw(circle);
                g2.draw(roundRect);
            }
        };
        setTitle("My Shapes");
        this.getContentPane().add(p);
    }

    public static void main(String arg[]) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                new DrawShapes();
            }
        });
    }

}

Sortie:

awt-shapes

Le code ci-dessus dessine une ligne, un rectangle, un cercle et un rectangle arrondi. Les arguments généralement transmis aux constructeurs incluent les coordonnées, la largeur et la hauteur dans le cas d'objets linéaires. Dans le cas de formes arrondies comme Ellipse ou Arc, les arguments passés incluent les coordonnées de l'origine et la largeur et la hauteur de la forme. En exécutant le code, la sortie est obtenue sous la forme d'une fenêtre comme indiqué ci-dessous.

Vous pouvez obtenir plus de détails sur les différents types de constructeurs et de formes disponibles dans les bibliothèques AWT en utilisant les références ci-dessous.