Vorlesung Informatik 1 - Teil A: Java Kurs

1.14 Einfache Grafik

Jedes JPanel Objekt hat eine Fläche, auf der man zeichnen kann, als läge eine Glasplatte über dem Panel.

Die Zeichenfläche ist ein Objekt vom Typ Graphics2D. Um zu zeichnen, überschreibt man üblicherweise die Methode paintComponent, welche das Graphics2D Objekt als Parameter bekommt. 

In unserer StandardAnwendung-Klasse wird diese Methode schon überschrieben, sie ruft wiederum die Methode zeichne.

Deshalb überschreiben wir die Methode zeichne, wenn wir Grafik machen wollen:

@Override
public void zeichne(Graphics2D g){
      g.setColor(Color.RED);
      g.fillOval(30,40,70,70);   // Kreis mit 70px Durchmesser an Position (30,40)
      ...

Die Zeichenfläche ist so groß wie das Panel: this.getWidth() und this.getHeight(). 

---------------------------------->    x
|
|   Koordinatenursprung ist die linke obere Ecke, x nach Rechts, y nach Unten.
|       Längen werden in Pixeln (px) gemessen.
|          0 ≤ x ≤ getWidth()         0 ≤ y ≤ getHeight()         
|
V   
      y

 

Einige Methoden von Graphics2D:

setColor(farbe: Color): void                   setzt Farbe für alle nachfolgenden Operationen
setStroke(st: Stroke): void                      setzt Strich-Stärke für folgende draw-Oparationen (z.B. setStroke(new BasicStroke(4)); für 4px Striche

drawLine(x1, y1, x2, y2: int)                  zeichet Linie von (x1, y1) nach x2,y2)
drawString(text: String, x,y: int): void  zeichnet Text an Position (x,y)   (
mit setFont ggf. orher Schriftart setzen)
fillOval(x,y,b,h: int): void 
                      füllt eine Ellipse aus. (x,y): linke obere Ecke, b,h: Breite, Höhe
drawOval(x,y,b,h: int):void                    zeichnet Umrandung einer Ellipse 
fillRect, drawRect(x,y,b,h: int): void      füllt bzw. zeichnet Rechteck (x,y): linke obere Ecke, b,h: Breite, Höhe

translate(dx,dy: int): void                       
verschiebt alle folgenden Zeichenoperatione um dx,dy

weitere  Methoden für draw/fillRoundRectangle, drawFillArc, draw/fill3DRect

Für allgemeine Formen: 
Polygon p = new Polygon();   // java.awt.Polygon
p.addPoint(4,5);
p.addPoint(7,9);

kann dann mit
drawPolygon oder fillPolygon gezeichnet werden.

Achtung: new Polygon()  nicht in der Methode zeichne rufen, um Performance-Probleme zu vermeiden.

Später lernen wir weitere Methoden kennen, die auch gebrochene Zahlen als Koordinaten zulassen.

 

Weiterführende Links

Kapitel zu Grafik in Java ist auch eine Insel

Lehrvideo  (YouTube)