Dessiner un hexagone en Java
- Utiliser des tableaux pour dessiner un hexagone en Java
- Utiliser un objet pour 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:
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 :
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:
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()
.