Zeichnen eines Dreiecks in Java
-
Verwendung von
java.awt
undjavax.swing
mitPath2D
zum Zeichnen eines Dreiecks in Java -
Verwenden Sie
java.awt
,javax.swing
unddrawPolygon
zum Zeichnen eines Dreiecks in Java -
Zeichnen eines Dreiecks mit
drawLine()
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:
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 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:
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