java ohne kara ab jetzt: java ohne kara ziel: erfahrungen sammeln mit ersten java programmen
TRANSCRIPT
![Page 1: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/1.jpg)
Java ohne Kara
Ab jetzt Java ohne Kara
Ziel Erfahrungen sammeln mit ersten Java Programmen
JavaKara -gt Java
Ablauf in JavaKara1 Programm schreiben2 Kompilieren3 Programm starten
Ablauf in Java gleich1 Programm schreiben2 Kompilieren3 Programm starten
1 Programm schreiben
Texteditor statt JavaKara-Editor
2 Kompilieren
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
javac steht fuumlr bdquojava compilerldquo
3 Programm starten
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 2: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/2.jpg)
Ab jetzt Java ohne Kara
Ziel Erfahrungen sammeln mit ersten Java Programmen
JavaKara -gt Java
Ablauf in JavaKara1 Programm schreiben2 Kompilieren3 Programm starten
Ablauf in Java gleich1 Programm schreiben2 Kompilieren3 Programm starten
1 Programm schreiben
Texteditor statt JavaKara-Editor
2 Kompilieren
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
javac steht fuumlr bdquojava compilerldquo
3 Programm starten
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 3: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/3.jpg)
JavaKara -gt Java
Ablauf in JavaKara1 Programm schreiben2 Kompilieren3 Programm starten
Ablauf in Java gleich1 Programm schreiben2 Kompilieren3 Programm starten
1 Programm schreiben
Texteditor statt JavaKara-Editor
2 Kompilieren
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
javac steht fuumlr bdquojava compilerldquo
3 Programm starten
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 4: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/4.jpg)
1 Programm schreiben
Texteditor statt JavaKara-Editor
2 Kompilieren
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
javac steht fuumlr bdquojava compilerldquo
3 Programm starten
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 5: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/5.jpg)
2 Kompilieren
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
javac steht fuumlr bdquojava compilerldquo
3 Programm starten
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 6: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/6.jpg)
3 Programm starten
Befehl in MS-DOS-Eingabeaufforderung anstatt bequemer Knopf
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 7: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/7.jpg)
TextPad
Wir verwenden hier TextPad(wwwtextpadcom)bull Vorteil 1
Farben erleichtern das Lesen der Programmzeilen
bull Vorteil 2Kompilieren und Start des Applets mit je einem Menu-Befehl
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 8: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/8.jpg)
TextPad
bull Wir brauchen nur wichtigste Funktionen des TextPad ndash Datei oumlffnenndash Datei speichernndash Ruumlckgaumlngig-Befehlndash Java kompilierenndash Java-Applet starten
bull Siehe TextPad-Anleitung in den Unterlagen
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 9: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/9.jpg)
Warum HelloWorldhtml
bull 2 Arten Java Programmendash Java Applikationenndash Java Applets
bull Kannmuss man in Webseiten einbauenbull Einfachere Programme als bei Applikationen
bull Applets Man benoumltigt Webseite (html) und ein Betrachtungsprogramm
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 10: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/10.jpg)
Wie sieht die html-Datei aus
Dateiname der kompilierten Java-Klasse
Groumlsse des Programm-Fensters
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 11: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/11.jpg)
TextPad-Problem
bull Um Java-Applet aus dem TextPad zu starten muss die html-Datei bereits existieren
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 12: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/12.jpg)
Also nochmals
1 Programm schreiben -gt HelloWorldjava
2 Kompilieren -gt HelloWorldclass(javac HelloWorldjava)
3 HTML-Datei (zB HelloWorldhtml) erstellen und Programm starten(appletviewer HelloWorldhtml)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 13: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/13.jpg)
Ein einfaches Java-Applet
import javaawt
import javaapplet
public class HelloWorld extends Applet
public void paint(Graphics screen)
screendrawString(hello world 10 10)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 14: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/14.jpg)
Gaumlhhhnnn
Jetzt seid Ihr aber dran
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 15: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/15.jpg)
Auftrag
bull Jede schreibt das HelloWorld-Applet speichert es kompiliert es und laumlsst es laufen
bull Zeit 20 Minuten
bull Ihr findet alleswas Ihr brauchtin den Unterlagen
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 16: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/16.jpg)
Los
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 17: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/17.jpg)
Quelle Uli Stein
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 18: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/18.jpg)
Wichtig bei Java-Programmen
bull Dateiname = KlassennameHelloWorldjava lt-gt () class HelloWorld ()
bull Kompilieren nicht vergessen (Sonst startet man eine alte bdquoHelloWorldclassldquo-Version)
Goldene Regel
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 19: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/19.jpg)
Das Spezielle an Java
bull Java stellt viele Funktionen zur Verfuumlgung
bull Durch diese bdquoFertig-Bauelementeldquo ist man schneller am Ziel
bull Aber Man muss sich andie Richtlinien halten
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 20: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/20.jpg)
public void paint()
bull Wird von Java aufgerufen sobald ein Bildschirmbereich neu gezeichnet werden muss
bull Von Java festgelegter Namebull Ideal um Grafik-Sachen zu
zeichnen
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 21: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/21.jpg)
Ablauf bei Java-Programmen
bull In Java programmiert man Ereignissebull Ereignis bdquoFuumlhre bei Mausklicks die
Methode xy ausldquobull Nicht Ereignis-gesteuert
Viel komplizierter
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 22: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/22.jpg)
Ablauf bei Java-Programmen
bull Einige vordefinierte Methoden init start paint stop destroy
bull Die restlichen Ereignisse muss man selber definierenndash ZB Neuer Knopf erstellenndash Ereignis-Methode schreibenndash Methode zuordnen bdquoWenn Mausklick auf
diesen Knopf dann fuumlhre Methode xy ausldquo
Hauml ndash Brauchen wir vorlaumlufig gar nicht
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 23: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/23.jpg)
Ablauf bei Java
Von Java definierte Methodenndash Beim Start der Ausfuumlhrungvoid init()
ndash Immer wenn es etwas zu zeichnen gibtvoid paint(Graphics g)
ndash Vor dem Programmendevoid destroy()
ndash Und noch weitere wie void start() void stop() void update()
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 24: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/24.jpg)
Was muss ich jetzt tun
bull Methode paint() eignet sich ideal fuumlr das Zeichnen von Punkten Linien etc auf den Bildschirm
bull Java-Applet-Programm muss die Methode enthalten dann wird sie automatisch aufgerufen
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 25: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/25.jpg)
Linie zeichnen
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
x
y
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 26: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/26.jpg)
import javaawt
import javaapplet
public class ZeichneLinie extends Applet
public void paint(Graphics screen)
screendrawLine(101020050)
Graphicshellip
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 27: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/27.jpg)
Graphicshellip
Java
An Programm starte dein paint(hellip)
Programm
Okay Aber wo soll ich
denn hinzeichnen
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 28: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/28.jpg)
Graphicshellip
Java
Hier kriegst du ein Blatt Papier vom
Typ Graphics
Programm
Danke Ich nenne das
Blatt screen
Graphics
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 29: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/29.jpg)
Zusammengefasst
bull Der Methode paint() wird ein Objekt vom Typ Graphics uumlbergeben
bull Dem Objekt geben wir einen Namenbull Objekte vom Typ Graphics stellen viele
Methoden bereit zB drawLine(hellip)
public void paint (Graphics screen)
screendrawLine(101020050)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 30: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/30.jpg)
Graphics-Befehle
Graphics screen
bull Text ausgebenscreendrawString(Java ist cool 10 20)
bull Linie zeichnenscreendrawLine(5 10 250 40)
bull Punkt zeichnenscreendrawLine(10 70 10 70)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 31: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/31.jpg)
Jetzt kombinieren wir alles
bull Variablen Schleifen Methoden Linien Kreise Punkte Texte
bull Grafik-Aufgaben im Anhang
bull Zeit 45 Minutenbull Danach 15 Minuten Pause
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 32: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/32.jpg)
Hinweise zu Grafik
bull Koordinaten beginnen bei (00)bull Fenster der Groumlsse 400x200
ndash Punkt oben-links (00)ndash Punkt unten-rechts (399199)
Punkt (42)
0 1 2 3 4
0
1
2
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 33: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/33.jpg)
Graphics-Blatt weitergeben
bull Methode zeichneRechteck(hellip) soll man mitscreendrawLine(x1 y1 x2 y2)eine Linie zeichnen koumlnnen
bull Wir geben das Blatt an die Methode weiterpublic void paint (Graphics blatt)
zeichneRechteck(10 10 200 50 blatt)
void zeichneRechteck ( Graphics screen)
screendrawLine(x1 y1 x2 y2)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 34: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/34.jpg)
RechteckAppletjava
void zeichneRechteck(int x int y int width int height Graphics screen) ()
screendrawLine(obenlinks_x obenlinks_y obenrechts_x obenrechts_y )
screendrawLine(obenrechts_x obenrechts_y untenrechts_x untenrechts_y)
screendrawLine(untenrechts_x untenrechts_y untenlinks_x untenlinks_y )
screendrawLine(untenlinks_x untenlinks_y obenlinks_x obenlinks_y )
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 35: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/35.jpg)
RechteckAppletjava
int obenlinks_x = xint obenlinks_y = y
int obenrechts_x = x+width-1int obenrechts_y = y
int untenlinks_x = xint untenlinks_y = y+height-1
int untenrechts_x = x+width-1int untenrechts_y = y+height-1
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 36: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/36.jpg)
RechteckAppletjava
public void paint(Graphics g) zeichneRechteck(10050200100g) gdrawLine(10050299149) gdrawLine(29950100149)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 37: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/37.jpg)
Punktmuster
bull Punktmuster im 10er-Raster
bull Ideen
10 Punkte
Erstelle mal die erste Zeile
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
for (int i=0 ilt400 i++) screendrawLine(i100i100)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 38: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/38.jpg)
Punktmuster
Und jetzt
10 Punkte
Die restlichen Zeilen Wiederhole erste Zeile bdquox-Malldquo
for (int j=0 jlt400 j++)
for (int i=0 ilt400 i++) screendrawLine(i10 0 i10 0)
for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 39: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/39.jpg)
Auf den ersten Blick verwirrend
bull Innere Schleife wird zuerst abgearbeitet(einzelne Zeile)
bull Die Zeile muss bei jedem neuen j wiederholt gezeichnet werden
for (int j=0 jlt400 j++) for (int i=0 ilt400 i++) screendrawLine(i10 j10 i10 j10)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 40: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/40.jpg)
Schweizerkarte
bull Schweizerkarte auf dem Bildschirm anzeigen
bull Stadt Bern und Stadt Zuumlrich einzeichnen
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 41: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/41.jpg)
Wo einzeichnen
bull Koordinaten von Berny=200000 x=600000
bull ETH Zuumlrich Houmlnggerbergy=251326 x=679885
x
y
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 42: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/42.jpg)
Wo ist Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i= j=j
i
x=679885 y=251326
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 43: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/43.jpg)
Fuumlr x bzw i
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
x=679885
Linker Rand subtrahierenxneu=179885
0 350lsquo000xneu
Streckungsfaktor
scale=600
350000Multiplizieren mit scalexneuscale=308
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 44: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/44.jpg)
Auf einen Blick
300lsquo000
50lsquo000
x0=500lsquo000 x1=850lsquo000
y
x
0
4000 i1=600
x=679885
i=(x-x0) =308i1
x1-x0
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 45: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/45.jpg)
Fuumlr y bzw j
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
y=251326
Idee Drehe j-Achse voruumlbergehend
jneu
400
0
Jetzt wie bei x- bzw i-Achsejneu=(y-y0) =322
j1
y1-y0
y1=300lsquo000
y0=50lsquo000
jneu
j1=400
0
j=400-jneu=78
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 46: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/46.jpg)
Auf einen Blick
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
j
i
x=679885
i=(x-x0) =308i1
x1-x0
y=251326
j=j0 - (y-y0) =78j1
y1-y0( )
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 47: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/47.jpg)
(308 78)
Wo ist nun Zuumlrich
300lsquo000
50lsquo000
500lsquo000 850lsquo000
y
x
0
4000 600
i=berechneBildschirmI(x)
j=berechneBildschirmJ(y)
j
i
x=679885
y= 251326
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 48: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/48.jpg)
Nun in Java
int berechneBildschirmI (double x) double bildschirmI bildschirmI = (x-XMIN) FENSTERMAX_I (XMAX-XMIN) return (int) bildschirmI
int berechneBildschirmJ (double y) double bildschirmJ double jverkehrt jverkehrt = (y-YMIN) FENSTERMAX_J (YMAX-YMIN) bildschirmJ = FENSTERMAX_J ndash ( jverkehrt ) return (int) bildschirmJ
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 49: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/49.jpg)
Bern
i=berechneBildschirmI(600000)
j=berechneBildschirmJ(200000)
171
160
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 50: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/50.jpg)
Nicht dein Traum-Typ
bull Typen kann man in Java umwandeln
bull Gleitkommazahl in eine Ganzzahl umwandelnint idouble pi = 314159 i = (int) pi
bull Ganzzahl in Zeichenkette umwandelnint jahr = 2002String text = Wir haben das Jahr + jahr
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 51: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/51.jpg)
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen)
awt Advanced Windowing Toolkit
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 52: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/52.jpg)
Java-Geruumlst
import javaawtimport javaappletpublic class ZeichneLinie extends Applet public void paint(Graphics screen) bdquoErweitertldquo Applet dh
ZeichneLinie gehoumlrt zu den Applets
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 53: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/53.jpg)
Graphics
bull Neben Graphics gibt es in Java auch noch eine Klasse Image
bull Graphics beinhaltet immer ein Image aber auch noch weitere Objekte
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-
![Page 54: Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen](https://reader036.vdocuments.site/reader036/viewer/2022062512/55204d7149795902118c3aa5/html5/thumbnails/54.jpg)
Graphics
bull Wir zeichnen die Linien in das Graphics-Objekt
bull Dort werden die Linien auf das Image-Objekt uumlbertragen
Graphics
Image
Aktuelle Font
Aktuelle Farbe
Hintergrund
- Folie 1
- Folie 2
- Ab jetzt Java ohne Kara
- JavaKara -gt Java
- 1 Programm schreiben
- 2 Kompilieren
- 3 Programm starten
- TextPad
- TextPad
- Warum HelloWorldhtml
- Wie sieht die html-Datei aus
- TextPad-Problem
- Also nochmals
- Ein einfaches Java-Applet
- Gaumlhhhnnn
- Auftrag
- Los
- Folie 18
- Wichtig bei Java-Programmen
- Das Spezielle an Java
- public void paint()
- Ablauf bei Java-Programmen
- Slide 23
- Ablauf bei Java
- Was muss ich jetzt tun
- Linie zeichnen
- Graphicshellip
- Slide 28
- Slide 29
- Zusammengefasst
- Graphics-Befehle
- Jetzt kombinieren wir alles
- Hinweise zu Grafik
- Graphics-Blatt weitergeben
- RechteckAppletjava
- Slide 36
- Slide 37
- Punktmuster
- Slide 39
- Auf den ersten Blick verwirrend
- Schweizerkarte
- Folie 42
- Wo einzeichnen
- Wo ist Zuumlrich
- Fuumlr x bzw i
- Auf einen Blick
- Fuumlr y bzw j
- Slide 48
- Wo ist nun Zuumlrich
- Nun in Java
- Bern
- Nicht dein Traum-Typ
- Java-Geruumlst
- Slide 55
- Graphics
- Slide 57
-