Die Klassen Rectangle2D und Ellipse2D
ermöglichen das Zeichnen von Kreisen, Ellipsen, Quadraten und Rechtecken.
Im Beispiel wird dies an einem Kreis gezeigt:
Ein JFrame wird mit einer Instanz einer Klasse beladen, die von JPanel
abgeleitet wurde. In dessen Methode paintComponent() wird zunächst
eine weiße, rechteckige Fläche in der Größe der Komponente
gezeichnet, um eine kontrastreiche Darstellung zu erreichen. Vorher wird das als
Parameter übergebene Graphics-Objekt in ein Graphics2D-Objekt
gecastet. Die Zeichnung einer Ellipse oder seiner Sonderform des Kreises
geschieht in Java anhand des die Form umschließenden achsenparallelen
Rechtecks. Nimmt man den Mittelpunkt und den Radius als gegeben an, so errechnet
sich die den Startpunkt definierende linke obere Ecke des
Umschließungsrechtecks aus den Koordinaten des Mittelpunktes minus Radius
und der Durchmesser aus der Verdoppelung des Radius. Mit diesen Werten wird ein
Ellipse2D.Double-Objekt instanziert, das jedoch noch mit Hilfe der
Methode draw() des Graphics2D-Objektes gezeichnet werden muss.
Die Darstellung von Ellipsen und Rechtecken erfolgt auf äquivalente Art und
Weise. Die statische Klasse ist von der abstrakten Klasse Ellipse2D
abgeleitet. Sie erwartet entsprechende double-Parameter. Eine weniger
genaue existiert mit der Klasse Eclipse2d.Float. Mit den Klassen Rectangle2D.Double
bzw. Rectangle2D.Float verhät es sich äquivalent.