Java

Zeichnen in Java

Inhaltsübersicht

Du möchtest dein eigenes Spiel programmieren oder bist einfach mit den angebotenen Standardelementen in Java unzufrieden? Wir erklären dir jetzt, wie man in Java selbst zeichnet.

Grafische Implementierung von Objekten

Die grafische Implementierung von Objekten findet vor allem in Zeichenprogrammen und Spielen Verwendung, da für diese Art von Anwendungen oftmals die standardmäßig zur Verfügung gestellten GUI-Elemente nicht genügen.

Verwendung der Klasse Graphics

Um aber überhaupt zeichnen zu können, brauchen wir zunächst einmal die Klasse Graphics, denn sie hält schon viele Methoden, die wir brauchen, bereit.

Graphics enthält viele Methoden die wir brauchen

Konkret enthält sie alle Grafikkontext-bezogenen Methoden. Diese definieren eine zweidimensionale Bitmap, deren Position, Farbe und Größe wir manipulieren können. Zusätzlich dazu enthält sie auch Angaben zu Zeichenfarbe und Schriftart.

Zeichenmethoden

Wichtig sind für uns vor allem die bereitgestellten Zeichenmethoden und die Methode zum Ändern der Farbe:

Zeichenmethoden und Methoden zum Ändern der Farbe

Objekte, die mit diesen Methoden erzeugt bzw. verändert werden, werden nicht direkt von Graphics, sondern mittels interner Klassen erzeugt.

Um auf den Grafikkontext eines Objekts zugreifen zu können, nutzen wir die Methode getGraphics. Sie liefert als Rückgabewert eine nicht-abstrakte Unterklasse.

Zugriff auf Grafikkontext: getGraphics

Visualisierung mit der Paint-Methode

Sichtbar müssen wir unsere Objekte aber auch noch machen. Das können wir ganz einfach tun, indem wir die Paint-Methode aufrufen.

Wie das genau funktioniert, erklären wir dir jetzt anhand eines Beispiels:

Stell dir vor, du möchtest ein einfaches Programm zum Zeichnen von Rechtecken programmieren.

Festlegung der Leinwand und ihrer Eigenschaften

Dazu brauchst du zunächst einmal eine Leinwand. Erst legen wir fest, welche Eigenschaften diese haben soll. Wir wollen, dass Zeichnen per Mausklick erlaubt ist und erstellte Objekte sich ebenfalls durch Mausklick aktivieren bzw. markieren lassen. Dazu brauchen wir eine geeignete Ereignisbehandlung, die Reaktionen vom aktuell gewählten Werkzeug abhängig macht. Dies sollte durch Setzen boolescher Variablen möglich sein.

Leinwand und Zeichenwerkzeuge

Los geht’s! Wir erzeugen eine Klasse namens Geometry, der wir die Attribute‚ ‚Border Color‘ und ‚Selected‘ zuweisen. Nun implementieren wir die Methoden boolean hoverMouse und void paint().

Erzeugung der Klasse Geometry

Um zur Laufzeit des Programms nicht den Überblick zu verlieren, fügen wir noch einen GeometryContainer hinzu, der die Verwaltung der sichtbaren Objekte übernimmt.

Als Leinwand selbst, können wir ein Panel verwenden. Das muss aber noch in der Lage sein, gezeichnete Objekte anzuzeigen, und auf Mausereignisse zu reagieren. Die Leinwand wird automatisch beim Ändern des Datencontainers aktualisiert.

Als Leinwand wird ein Panel verwendet

Zuletzt brauchen wir noch ein Fenster mit Menü, das Schaltflächen für unsere Werkzeugauswahl bereitstellt und die Zeichenfläche enthält. Außerdem bietet es uns die Möglichkeit des Speicherns und Ladens.

Zeichnen der Elemente

So! Nun willst du ein Rechteck zeichnen. Dazu wählst du einfach das GUI-Element, das dieses Werkzeug „enthält“. Daraufhin wird in der Ereignisbehandlung die zugehörige boolesche Variable auf true gesetzt.

Auswählen des Werkzeugs und Setzen auf true

Klickst du nun auf die Leinwand, werden die Variablen pressedX und pressedY auf die Koordinaten deiner Mausposition gesetzt und ein Rechteck mit den Seitenlängen null wird erzeugt.

Bewegst du die Maus nun, um das Rechteck aufzuziehen, werden permanent die Seitenlängen aktualisiert. Lässt du die Maustaste los, wird die boolesche Variable mousedrawRect auf false gesetzt und die Aktion ist abgeschlossen.

Mit der Maus kann jetzt das Rechteck aufgezogen werden

Zu guter Letzt müssen wir bereits während des Aufziehens nach jeder Bewegung der Maus die repaint() Funktion aufrufen, damit das besagte Rechteck auch aktualisiert und nicht nur überzeichnet wird.

Super! Jetzt weißt du sogar wie du Elemente in Java zeichnen kannst. Vor allem aber kannst du jetzt ein voll funktionsfähiges Spiel programmieren. Viel Spaß dabei!

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte lade anschließend die Seite neu.