Skip to content
Grafikeinführung in Java
1

Grafikeinführung

JPanel und JFrame

23.09.2022
Grafikeinführung in Java
2

JFrame

java
import javax.swing.JFrame;

public class HelloApp {

    public static void main(String[] args) {
        JFrame frame = new JFrame("Hello Application");
        frame.setSize(800, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new HelloPanel());

        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

}
 Ein Frame / Window
23.09.2022
Grafikeinführung in Java
3

JPanel

java
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class HelloPanel extends JPanel {


    @Override
    protected void paintComponent(Graphics g) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, getWidth(), getHeight());

        g.setColor(Color.WHITE);
        g.drawString("It's SPACE!", 120, 280);
    }
}
23.09.2022
Grafikeinführung in Java
4

paintComponent(Graphics g)

Bei der Klasse Panel überschreiben wir die Methode paintComponent. Wir ersetzen hiermit die "Standardimplementierung" mit unserer eigenen Implementierung.

Wir rufen paintComponent nie selber auf, sondern das System ruft paintComponent auf.

23.09.2022
Grafikeinführung in Java
5

Der Parameter Graphics g

Graphics g ist unsere Kreide. Mit ihr können wir im Panel drin zeichnen.

23.09.2022
Grafikeinführung in Java
6

Koordinatensystem

23.09.2022
Grafikeinführung in Java
7

Anatomie eines Panels

  • Breite: getWidth() als int in Pixel
  • Höhe: getHeight() als int in Pixel
  • paintComponent wird aufgerufen:
    • wenn das JPanel erstellt wird
    • wenn es die Grösse ändert
    • wenn mit repaint() neues Zeichnen forciert wird
23.09.2022
Grafikeinführung in Java
8

Was können wir mit Graphics g zeichnen?

Methode von Graphics g
setColorSetzt die aktuelle Farbe
drawLineLinie
drawRectRechteck
fillRectgefülltes Rechteck
drawOvalKreis
fillOvalgefüllter Kreis
drawStringText
drawImagepng / jpg
23.09.2022
Grafikeinführung in Java
9

Libraries und Imports

java
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

Packages sind hirarchisch strukturiert und stellen Funktionalität zur Verfügung.

23.09.2022
Grafikeinführung in Java
10

Math Library

java
public class MathDemo {

    public void doSomeMath() {
        // Pseudorandom Zahl zwischen 0 und 1
        double random = Math.random();

        // Trigonometrie
        double len = Math.sin(Math.PI / 4);

        // Exponent
        double p = Math.pow(2, 10);

        // Konstanten
        double pi = Math.PI;
        double e = Math.E;
    }
}
23.09.2022