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.
Inhaltsübersicht
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.
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.
Studyflix vernetzt: Hier ein Video aus einem anderen Bereich
Zeichenmethoden
Wichtig sind für uns vor allem die bereitgestellten Zeichenmethoden und die Methode 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.
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.
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().
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.
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.
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.
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!
Zeichnen in Java — häufigste Fragen
(ausklappen)
Zeichnen in Java — häufigste Fragen
(ausklappen)-
Was ist eine GUI in Java?Eine „GUI“ (Graphical User Interface) ist die grafische Benutzeroberfläche eines Java-Programms, also Fenster und bedienbare Elemente wie Buttons, Menüs oder Panels. Über die „GUI“ kann man das Programm mit Maus und Tastatur steuern, statt nur Text in der Konsole einzugeben.
-
Wie zeichnet man eine Linie in Java?Eine Linie zeichnet man in Java, indem man im Paint-Vorgang ein
Graphics-Objekt verwendet und daraufdrawLine(x1, y1, x2, y2)aufruft. Die vier Zahlen sind die Start- und Endkoordinaten der Linie. Die Zeichenfarbe kann man davor mitsetColor(...)setzen. -
Wie zeichnet man ein Rechteck?Ein Rechteck zeichnet man in Java über ein
Graphics-Objekt mitdrawRect(x, y, breite, höhe)oder gefüllt mitfillRect(x, y, breite, höhe). Beim „Aufziehen“ per Maus speichert man die Startkoordinaten beim Drücken, aktualisiert während der Bewegung Breite und Höhe und löst danachrepaint()aus. -
Warum muss man beim Zeichnen in Java während der Mausbewegung ständig repaint aufrufen?
repaint()muss während der Mausbewegung ständig aufgerufen werden, weil sich die Daten für die Form (z. B. Breite und Höhe des Rechtecks) fortlaufend ändern, die Anzeige aber nur bei einem neuen Paint-Durchlauf aktualisiert wird.repaint()stößt diesen erneuten Zeichenaufruf an, damit die aktuelle Form sichtbar wird.
Nach Beantwortung speichern wir deine Antwort, um Studyflix zu verbessern. Mehr dazu erfährst du in unserer Datenschutzerklärung.
Computergrafik verstehen
Zeichnen in Java ist ein typisches Beispiel für Computergrafik in Programmen. Du arbeitest in diesem Themenfeld mit Koordinaten, Farben und Formen und setzt sie auf einer Zeichenfläche sichtbar um. So erkennst du, wie Bildschirminhalte Schritt für Schritt entstehen und warum Aktualisieren und Ereignisse das Ergebnis verändern. Weitere Videos dazu findest du in unserem Informatikbereich.