Dessiner un hexagone en Java

Mehvish Ashiq 15 février 2024
  1. Utiliser des tableaux pour dessiner un hexagone en Java
  2. Utiliser un objet pour dessiner un hexagone en Java
Dessiner un hexagone en Java

Cet article montrera comment dessiner un hexagone dans la programmation Java. Nous allons découvrir les tableaux et les objets pour dessiner des formes à l’écran.

Utiliser des tableaux pour dessiner un hexagone en Java

Exemple de code (hexagon.java) :

import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;

public class hexagon extends JPanel {
  public hexagon() {
    setPreferredSize(new Dimension(500, 500));
  }

  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    int[] xPoints = {200, 300, 350, 300, 200, 150};
    int[] yPoints = {350, 350, 250, 150, 150, 250};
    g.fillPolygon(xPoints, yPoints, xPoints.length);
  }
}

Exemple de code (drawHexagon.java) :

import javax.swing.JFrame;

public class drawHexagon {
  public static void main(String[] args) {
    JFrame frame = new JFrame("Draw Hexagon");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new hexagon());
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
  }
}

Production:

Hexagone dessiné à l’aide de tableaux en Java

Cet exemple de code a les deux classes, hexagon.java et drawHexagon.java, qui a la fonction main. Le hexagon.java étend la classe JPanel car nous redéfinissons sa méthode nommée paintComponent().

JPanel, l’une des classes de package java.swing, est comme un conteneur stockant divers composants.

Sa tâche principale est d’organiser différents composants et mises en page. Vous pouvez trouver des informations détaillées à ce sujet ici.

De plus, nous créons un constructeur avec la méthode setPreferredSize(). Elle prend l’objet de la classe Dimension avec width et height comme arguments.

Pourquoi utilisons-nous setPreferredSize() au lieu de setBounds() ou setSize() ? Le setSize() et setBounds() ne peuvent être utilisés que lorsqu’aucun gestionnaire de disposition n’est utilisé, mais nous avons un gestionnaire de disposition par défaut.

Ainsi, nous pouvons fournir quelques indices à un gestionnaire de mise en page via la méthode setXXXXSize(). Par exemple, setPreferredSize().

Ensuite, nous redéfinissons une méthode nommée paintComponent(), qui crée des graphiques à l’écran. Il prend un objet de la classe Graphics que nous passons à la méthode paintComponent() de la classe super.

Nous pouvons utiliser cet objet pour définir la couleur, dessiner la forme, etc.

Après cela, nous créons deux tableaux, xPoints et yPoints, ayant des coordonnées x et y. Nous passons ces coordonnées et nPoints à la méthode fillPolygon() pour faire un hexagone à l’écran.

Pour trouver les points exacts d’un hexagone, nous pouvons utiliser le premier quadrant du graphique pour obtenir les points x et y. Voir ce qui suit :

Dessiner un hexagone en Java à l’aide de tableaux

Parlons maintenant de la classe drawHexagon.java. Nous créons un objet de classe JFrame, qui ajoute l’hexagone au cadre à l’aide de la méthode add().

Le setDefaultCloseOperation() est exécuté dès qu’un utilisateur appuie sur le bouton croisé (X) à l’écran. La méthode setVisible(true) rend la fenêtre visible à l’utilisateur.

La méthode setLocationRelativeTo(null) centre la fenêtre écran de l’ordinateur. De plus, pack() crée un cadre avec la bonne taille pour transporter le contenu à ou au-dessus de leurs tailles spécifiées.

Utiliser un objet pour dessiner un hexagone en Java

Exemple de code (hexagon.java) :

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JPanel;

public class hexagon extends JPanel {
  public hexagon() {
    setPreferredSize(new Dimension(250, 250));
  }

  @Override
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Polygon p = new Polygon();

    for (int i = 0; i < 6; i++)
      p.addPoint((int) (100 + 50 * Math.cos(i * 2 * Math.PI / 6)),
          (int) (100 + 50 * Math.sin(i * 2 * Math.PI / 6)));

    g.setColor(Color.RED);
    g.fillPolygon(p);
  }
}

Classe principale :

import javax.swing.JFrame;

public class drawHexagon {
  public static void main(String[] args) {
    JFrame frame = new JFrame("Draw Hexagon");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new hexagon());
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
  }
}

Production:

Hexagone dessiné à l&rsquo;aide d&rsquo;un objet en Java

Toutes les fonctionnalités sont identiques à celles de la section précédente, à l’exception de quelques modifications dans paintComponent() de la classe hexagon.java.

Cette fois, nous créons un objet de classe Polygon pour utiliser la méthode addPoint() pour ajouter des points. Nous définissons la couleur et remplissons la forme à l’aide des méthodes setColor() et fillPolygon().

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook