Zeichnen eines Dreiecks in Java

Rupam Yadav 12 Oktober 2023
  1. Verwendung von java.awt und javax.swing mit Path2D zum Zeichnen eines Dreiecks in Java
  2. Verwenden Sie java.awt, javax.swing und drawPolygon zum Zeichnen eines Dreiecks in Java
  3. Zeichnen eines Dreiecks mit drawLine() in Java
Zeichnen eines Dreiecks in Java

In diesem Artikel werden wir lernen, wie man ein Dreieck in Java zeichnet. Wir verwenden AWT (Abstract Window Component Toolkit), die frühesten Java-Entwicklungspakete für grafische Programmieranwendungen. Swing ist ein neu entwickeltes GUI-Widget-Kit für Java, das auf AWT basiert und mehr Funktionalitäten hat.

Verwendung von java.awt und javax.swing mit Path2D zum Zeichnen eines Dreiecks in Java

Wir verwenden JFrame in der Klasse main, um das Hauptfenster zu erstellen, in dem Komponenten wie Schaltflächen, Textfelder hinzugefügt werden, um eine GUI (Graphical User Interface) zu erstellen. Die Klasse Draw_A_Triangle erweitert JPanel, das ein leichtgewichtiger Container ist, der zur Organisation von GUI-Komponenten verwendet wird. JPanel wird mit der Methode frame.add() zu JFrames hinzugefügt.

Die Klasse Triangle_Shape erweitert die Klasse Path2D, die eine einfache, aber flexible Form bereitstellt, die einen beliebigen geometrischen Pfad darstellt. Wir platzieren den ersten Punkt mit der Methode moveTo() und weitere Punkte mit der Methode LineTo(). Die Methode close() sorgt dafür, dass das Dreieck richtig geschlossen wird.

Die Methode paintComponent() wird automatisch aufgerufen, wenn das Panel erstellt wird oder wenn der Benutzer etwas in der Benutzeroberfläche tut, das ein erneutes Zeichnen erfordert. Das Graphics2D bietet mehr Kontrolle über das Farbmanagement, die Geometrie und das Textlayout. Schließlich verwenden wir g2d und rufen draw auf, um ein Dreieck zu zeichnen.

import java.awt.*;
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;
import javax.swing.*;

public class Draw_A_Triangle extends JPanel {
  public void paintComponent(Graphics g) {
    Triangle_Shape triangleShape = new Triangle_Shape(
        new Point2D.Double(50, 0), new Point2D.Double(100, 100), new Point2D.Double(0, 100));
    Graphics2D g2d = (Graphics2D) g.create();
    g2d.draw(triangleShape);
  }
  public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame("Draw Triangle");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBackground(Color.white);
    frame.setSize(200, 200);

    Draw_A_Triangle panel = new Draw_A_Triangle();
    frame.add(panel);
    frame.setVisible(true);
  }
}
class Triangle_Shape extends Path2D.Double {
  public Triangle_Shape(Point2D... points) {
    moveTo(points[0].getX(), points[0].getY());
    lineTo(points[1].getX(), points[1].getY());
    lineTo(points[2].getX(), points[2].getY());
    closePath();
  }
}

Ausgabe:

Zeichnen eines Dreiecks in Java - moveTo

Verwenden Sie java.awt, javax.swing und drawPolygon zum Zeichnen eines Dreiecks in Java

Wir verwenden JFrame, um einen Container auf oberster Ebene zu erstellen, und fügen ihm dann ein Panel hinzu, das unsere Klasse DrawATriangle ist, die JPanel erweitert.

Wie im folgenden Code gezeigt, rufen wir die Methode drawPolygon innerhalb der paintComponent auf, um ein Dreieck auf dem Graphics-Objekt g zu erzeugen.

Die Methode drawPolygon(int x[], int y[], int numOfPoints) zeichnet ein Umrisspolygon entsprechend den in den Arrays x[] und y[] angegebenen Koordinaten. Die numOfPoints gibt die Anzahl der Punkte an, die im Falle eines Dreiecks 3 beträgt.

import java.awt.*;
import javax.swing.*;

public class DrawATriangle extends JPanel {
  public void paintComponent(Graphics g) {
    int[] x = {50, 100, 0};
    int[] y = {0, 100, 100};
    g.drawPolygon(x, y, 3);
  }

  public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame("Draw a Polygon");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBackground(Color.white);
    frame.setSize(300, 200);

    DrawATriangle panel = new DrawATriangle();
    frame.add(panel);
    frame.setVisible(true);
  }
}

Ausgabe:

Zeichnen eines Dreiecks in Java - drawPolygon

Zeichnen eines Dreiecks mit drawLine() in Java

In der Klasse DrawTriangle erweitern wir JComponent, um die Komponenten Swing wie paintCompnent() und JFrame zu verwenden. Wir überschreiben paintComponent(Graphics g) mit dem Graphics-Parameter g, mit dem wir verschiedene Zeichenfunktionen aufrufen können.

Wir rufen die Methode drawLine() auf, um eine Linie zu zeichnen. Da wir ein Dreieck mit drei Linien erstellen wollen, müssen wir drawLine() dreimal aufrufen. drawLine() nimmt vier Argumente entgegen, die x- und y-Koordinaten des ersten und zweiten Punktes der Linie.

Die Methode getPreferredSize() wird mit dem Rückgabetyp Dimension aufgerufen, um die Abmessungen des Fensters anzugeben. Um schließlich das Dreieck darzustellen, erzeugen wir in der Methode main ein JFrame-Objekt und fügen ihm das Objekt der Klasse DrawTriangle hinzu. Beachten Sie, dass wir jFrame.setVisible(true) aufrufen müssen, da der Rahmen zunächst unsichtbar ist.

import java.awt.*;
import javax.swing.*;

public class DrawTriangle extends JComponent {
  @Override
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);

    g.drawLine(120, 130, 280, 130);
    g.drawLine(120, 130, 200, 65);
    g.drawLine(200, 65, 280, 130);
  }

  public Dimension getPreferredSize() {
    return new Dimension(500, 300);
  }

  public static void main(String[] args) {
    JFrame jFrame = new JFrame();
    jFrame.add(new DrawTriangle());
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.pack();
    jFrame.setVisible(true);
  }
}

Ausgabe:

Zeichnen eines Dreiecks in Java - Drawline

Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java GUI