Zeichne ein Sechseck in Java
- Verwenden von Arrays zum Zeichnen eines Sechsecks in Java
- Verwenden Sie Objekt, um Sechseck in Java zu zeichnen
Dieser Artikel zeigt, wie man ein Sechseck in der Java-Programmierung zeichnet. Wir lernen Arrays und Objekte kennen, um Formen auf dem Bildschirm zu zeichnen.
Verwenden von Arrays zum Zeichnen eines Sechsecks in Java
Beispielcode (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);
}
}
Beispielcode (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);
}
}
Ausgabe:
Dieses Codebeispiel hat die beiden Klassen hexagon.java
und drawHexagon.java
, die die Funktion main
hat. Die hexagon.java
erweitert die JPanel
-Klasse, weil wir ihre Methode namens paintComponent()
überschreiben.
JPanel
, eine der Paketklassen von java.swing
, ist wie ein Container, der verschiedene Komponenten speichert.
Seine Hauptaufgabe besteht darin, verschiedene Komponenten und Layouts zu organisieren. Ausführliche Informationen dazu finden Sie hier.
Außerdem erstellen wir einen Konstruktor mit der Methode setPreferredSize()
. Es nimmt das Objekt der Klasse Dimension
mit width
und height
als Argumente.
Warum verwenden wir setPreferredSize()
statt setBounds()
oder setSize()
? setSize()
und setBounds()
können nur verwendet werden, wenn kein Layout-Manager verwendet wird, wir aber einen Standard-Layout-Manager haben.
So können wir einem Layout-Manager über die Methode setXXXXSize()
einige Hinweise geben. Zum Beispiel setPreferredSize()
.
Dann überschreiben wir eine Methode namens paintComponent()
, die Grafiken auf dem Bildschirm erstellt. Es nimmt ein Objekt aus der Klasse Graphics
, das wir an die Methode paintComponent()
der Klasse super
übergeben.
Wir können dieses Objekt verwenden, um die Farbe festzulegen, die Form zu zeichnen usw.
Danach erstellen wir zwei Arrays, xPoints
und yPoints
, mit x- und y-Koordinaten. Wir übergeben diese Koordinaten und nPoints
an die fillPolygon()
-Methode, um ein Sechseck auf dem Bildschirm zu erstellen.
Um die genauen Punkte eines Sechsecks zu finden, können wir den ersten Quadranten des Diagramms verwenden, um x- und y-Punkte zu erhalten. Siehe Folgendes:
Lassen Sie uns nun über die Klasse drawHexagon.java
sprechen. Wir erstellen ein Objekt der Klasse JFrame
, das das Sechseck mit der Methode add()
zum Rahmen hinzufügt.
Die setDefaultCloseOperation()
wird ausgeführt, sobald ein Benutzer die Kreuztaste (X
) auf dem Bildschirm drückt. Die Methode setVisible(true)
macht das Fenster für den Benutzer sichtbar.
Die Methode setLocationRelativeTo(null)
zentriert das Bildschirmfenster des Computers. Darüber hinaus erstellt pack()
einen Rahmen mit der richtigen Größe, um den Inhalt in oder über der angegebenen Größe zu tragen.
Verwenden Sie Objekt, um Sechseck in Java zu zeichnen
Beispielcode (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);
}
}
Hauptklasse:
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);
}
}
Ausgabe:
Alle Funktionen sind die gleichen wie im vorherigen Abschnitt, mit Ausnahme einiger Änderungen in paintComponent()
der Klasse hexagon.java
.
Dieses Mal erstellen wir ein Objekt der Klasse Polygon
, um die Methode addPoint()
zum Hinzufügen von Punkten zu verwenden. Wir setzen die Farbe und füllen die Form mit den Methoden setColor()
und fillPolygon()
.