Zeichne ein Sechseck in Java

Mehvish Ashiq 12 Oktober 2023
  1. Verwenden von Arrays zum Zeichnen eines Sechsecks in Java
  2. Verwenden Sie Objekt, um Sechseck in Java zu zeichnen
Zeichne ein Sechseck in Java

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:

Sechseck gezeichnet mit Arrays in Java

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:

Zeichnen Sie ein Sechseck in Java mit Arrays

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:

Sechseck gezeichnet mit Objekt in Java

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().

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