Zeichnen eines Kreises in Java
-
Zeichnen eines Kreises mit der Funktion
drawOval()
in Java -
Zeichnen eines Kreises mit der Funktion
drawRoundRect()
in Java -
Zeichnen eines Kreises mit
Shape
unddraw()
in Java
In diesem Artikel stellen wir vor, wie wir einen Kreis in Java mit Hilfe der Bibliotheken java.awt
und javax.swing
zeichnen können, die zum Erstellen von GUI-Komponenten verwendet werden. Wir werden einige Funktionen der Klasse Graphics2d
verwenden, die mehr Kontrolle über die grafischen Komponenten bietet, die wir auf dem Bildschirm zeichnen wollen.
Zeichnen eines Kreises mit der Funktion drawOval()
in Java
Im ersten Beispiel verwenden wir die Methode drawOval()
der Klasse Graphics2D
, die ovale Formen erstellen könnte, aber um einen perfekten Kreis zu erzeugen. Um den Kreis zu zeichnen, überschreiben wir zunächst die Funktion paint(Graphics g)
, die die Komponente mit der Klasse Graphics
gemalt hat.
Wir casten Graphics
auf den Typ Graphics2D
, um dessen Methoden und Eigenschaften zu nutzen. Nun rufen wir die Funktion drawOval()
auf und übergeben vier Argumente. Die ersten beiden Argumente sind die x- und y-Koordinaten des Kreises, während die letzten beiden Argumente die Breite und die Höhe des zu zeichnenden Kreises angeben.
Zuletzt erweitern wir JFrame
aus dem Paket javax.swing
, um einen Fensterrahmen mit der angegebenen Größe und den Eigenschaften zu erzeugen.
import java.awt.*;
import javax.swing.*;
public class DrawCircle extends JFrame {
public DrawCircle() {
setTitle("Drawing a Circle");
setSize(400, 400);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(150, 150, 100, 100);
}
public static void main(String[] args) {
new DrawCircle();
}
}
Ausgabe:
Zeichnen eines Kreises mit der Funktion drawRoundRect()
in Java
Eine weitere Methode der Klasse Graphics2D
namens drawRoundRect()
kann ebenfalls verwendet werden, um einen Kreis zu zeichnen. Wie der Name schon sagt, malt sie ein abgerundetes Rechteck. Genau wie im ersten Beispiel überschreiben wir die Funktion paint(Graphics g)
und rufen dann die Methode drawRoundRect()
der Klasse Graphics2D
auf.
drawRoundRect()
akzeptiert sechs Argumente; die ersten beiden sind die x- und y-Koordinaten, die nächsten beiden geben die Breite und die Höhe an, und die letzten beiden Argumente sind die Breite und die Höhe des Bogens.
import java.awt.*;
import javax.swing.*;
public class DrawCircle extends JFrame {
public DrawCircle() {
setTitle("Drawing a Circle");
setSize(250, 250);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawRoundRect(40, 50, 90, 90, 200, 200);
}
public static void main(String[] args) {
new DrawCircle();
}
}
Ausgabe:
Zeichnen eines Kreises mit Shape
und draw()
in Java
Zeichnen() ist eine weitere Funktion der Klasse graphics2D
, die ein Shape
als Argument annimmt. Shape
ist eine Schnittstelle, die die Eigenschaften einer geometrischen Form bereitstellt. Wir wollen hier einen Kreis, also werden wir Ellipse2D.Double()
verwenden, das die Höhe und Breite der Ellipse sowie die x- und y-Koordinaten des umrahmenden Rechtecks definiert.
Im folgenden Beispiel übergeben wir die Argumente an Ellipse2D.Double()
, und ein erstelltes Shape
-Objekt an die Methode draw()
. Diese Methode wird schließlich einen Kreis in das Fenster zeichnen, das wir mit JFrame
erstellt haben.
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.*;
public class DrawCircle extends JFrame {
public DrawCircle() {
setTitle("Drawing a Circle");
setSize(250, 250);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
Shape circleShape = new Ellipse2D.Double(100, 100, 100, 100);
g2d.draw(circleShape);
}
public static void main(String[] args) {
new DrawCircle();
}
}
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