Java: Überschreiben der paint()-Methode

Es ging bestimmt einigen schon durch den Kopf, wie schaffe ich es Dinge auf die Benutzeroberfläche zu zeichnen z.B. einen Strich ein Kreis oder gar ein kleines Paint für zwischen durch.

Die Antwort hierfür ist: paint()

Die paint()-Methode verwaltet alles was mit dem Zeichnen des Fenster zu tun hat und wenn wir diese überschreiben bzw. erweitern, können wir somit unseren eigenen Inhalt darauf zeichnen.

Ich habe hier eine GameMap-Klasse als JPanel, welche als Map für ein 2D Spiel dienen könnte:

 

public class GameMap extends JPanel{

    public GameMap(){
        super(null);
        setPreferredSize(new Dimension(800, 600));
    }

    @Override
    public void paint(Graphics g) {
            super.paint(g);
            Graphics2D gr = (Graphics2D) g; 
// Graphics 2D ermöglicht es uns Grafiken etc. (eben alles was mit 2D zu tun hat)
// zu zeichnen und hinzuzufügen. Es besteht auch die Möglichkeit "Anti-Aliasing" zu aktivieren
    }
}
Als kurze Erklärung: super(); ruft den Konstruktor der Oberklasse auf also der Klasse von der wir geerbt haben. 
super.METHODENNAME(); ruft die Methode der Oberklasse auf. 

Als erstes, möchte ich nun die Anti-Aliasing Option aktivieren dies geschieht mit folgender Zeile:



gr.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Dadurch können wir nun hübsche Kreise zeichnen, welche nicht "eckig" sind. Sondern eine schöne Runde Kante besitzen.

Um nun eine Bilddatei zu laden können wir die Funktion drawImage verwenden.
Es gibt auch die Möglichkeit einen String auf das Panel zu "zeichnen" mit 

gr.drawString("TEST", xKoordinate, yKoordinate);

Kommentare

Beliebte Posts aus diesem Blog

[ENGLISH] Capture the Flag at UCF - Write Up - Crypto - XORLY

Dr. Evil's Bombe (Binary Bomb Lab) | Teil 1