HOWTO · Java

So zeichnen Sie ein Rechteck in JavaFX

Dieses Tutorial zeigt, wie Sie ein Rechteck in JavaFX zeichnen.

Auf dieser Seite

Erstellen Sie in JavaFX ein Rectangle, legen Sie Position, Größe, Füllung und Kontur fest und fügen Sie es dann einer Scene hinzu, die von einer Stage angezeigt wird. Die Form verwendet das Koordinatensystem der Szene, dessen Ursprung links oben liegt. Die folgenden JavaFX-Aufrufe und Eigenschaftsnamen zeigen die Konfiguration für ein JavaFX-Projekt. Die konfigurierte Java-Laufzeit enthält JavaFX nicht, daher lässt sich die grafische Anwendung in dieser Beispielumgebung weder kompilieren noch ausführen.

Ein Rechteck in JavaFX zeichnen

Die Klasse Rectangle befindet sich im Paket javafx.scene.shape. Ihre Eigenschaften x und y geben die linke obere Ecke an, während width und height die Abmessungen festlegen. Für diese Eigenschaften werden Werte vom Typ double verwendet. Eine 800 × 400 Einheiten große Szene kann beispielsweise ein Rechteck an der Position (200, 100) mit einer Breite von 400 und einer Höhe von 200 enthalten.

Eigenschaft Setter Beschreibung
x setX(double) Horizontale Position der linken oberen Ecke.
y setY(double) Vertikale Position der linken oberen Ecke.
width setWidth(double) Breite des Rechtecks.
height setHeight(double) Höhe des Rechtecks.
arcWidth setArcWidth(double) Horizontale Ausdehnung der abgerundeten Ecken.
arcHeight setArcHeight(double) Vertikale Ausdehnung der abgerundeten Ecken.

In der JavaFX-Version legen rectangle.setX(200), rectangle.setY(100), rectangle.setWidth(400) und rectangle.setHeight(200) die Position und Größe fest. Füllen Sie das Innere mit rectangle.setFill(Color.BLUE) und setzen Sie die Kontur mit rectangle.setStroke(Color.LIGHTBLUE); rectangle.setStrokeWidth(8) bestimmt die Stärke der Kontur. Fügen Sie die Form einer Group hinzu, erstellen Sie eine Scene mit den gewünschten Abmessungen und dem gewünschten Hintergrund, weisen Sie die Szene einer Stage zu und rufen Sie in der start-Methode der Anwendung stage.show() auf. Die Klasse erweitert Application, und ihre main-Methode ruft launch(args) auf. Führen Sie diese Version in einem JavaFX-Projekt aus, dessen Build- oder Startkonfiguration die JavaFX-Module verfügbar macht.

Das folgende ausführbare Java2D-Programm zeichnet dieselbe Geometrie in ein Bild im Speicher und gibt die abgetastete Füllfarbe aus. Es veranschaulicht Position und Größe unabhängig von JavaFX; eine JavaFX-Szene wird damit weder ausgeführt noch angezeigt.

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

public class DrawRectangle {
    public static void main(String[] args) {
        System.setProperty("java.awt.headless", "true");
        BufferedImage image = new BufferedImage(800, 400, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = image.createGraphics();
        graphics.setColor(Color.BLUE);
        graphics.fillRect(200, 100, 400, 200);
        graphics.dispose();

        Color sample = new Color(image.getRGB(250, 150));
        System.out.printf("Rectangle: x=%d, y=%d, width=%d, height=%d%n", 200, 100, 400, 200);
        System.out.printf("Sample fill: #%02X%02X%02X%n", sample.getRed(), sample.getGreen(), sample.getBlue());
    }
}
Rectangle: x=200, y=100, width=400, height=200
Sample fill: #0000FF

Um die JavaFX-Form abzurunden, legen Sie nach den Abmessungen beide Bogeneigenschaften fest: rectangle.setArcWidth(40) und rectangle.setArcHeight(40). setArcWidth steuert die horizontale, setArcHeight die vertikale Ausdehnung der Rundung. Gleiche Werte ergeben gleichmäßig gerundete Ecken; unterschiedliche Werte erzeugen eine längliche Rundung. Diese Einstellungen verändern die Ecken, während Position, Gesamtabmessungen, Füllung und Kontur des Rechtecks unverändert bleiben.