Inhaltsverzeichnis
Erste Schritte ...
… auf dem Weg zum Java-Applet
Zum Begriff: Ein Applet ist ein Programm, das innerhalb einer Webseite läuft und angezeigt wird, im Gegensatz zur Application, die eigenständig läuft.
Ergänzung 2018: Durch die zunehmenden Sicherheitsbedenken zeigt eigentlich kein Browser mehr die Java-Applets an, man kann aber z.B. noch den Appletviewer im JavaEditor1) benutzen, der sich dann auch als Editor für die Erstellung der Quelltexte anbietet (s. „Hilfsmittel“).
Uns wird es zunächst um die Grundlagen des Programmierens mit der Programmiersprache java gehen, manche Programmzeile der Vorlage werden „black box“ bleiben.
Eingesetzt wird die Klasse „Lisa“, die die Grafikbefehle für eine an unserer Schule entwickelte Turtlegrafik enthält.
Lisa-Applet (Grundgerüst)
/************************************** * Erstes Lisaprogramm * **************************************/ import java.applet.*; import java.awt.*; public class ErstesLisaprogramm extends Applet { \\ Dateiname: ErstesLisaprogramm.java Lisa l; public void paint(Graphics g) { l=new Lisa(g,500); //Größe des Zeichenfensters: -500 ... 500 in x- und y-Richtung //wird als Größe im applet-Tag übernommen l.vw(300); l.li(90.0); l.vw(100.0); } //Ende von paint }//Ende von class
HTML-Datei mit Applet (Grundgerüst)
Um das Applet dann zu sehen, benötigten wir noch eine Seite mit html-Befehlen. Für den Gebrauch auf dem eigenen Rechner ist z.B. das folgende Gerüst geeignet:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <title> erste HTML-Seite mit Lisa-APPLET</title> </head> <body style="text-align: center"> <h1>HTML-Beispielseite mit Lisa-APPLET</h1> <hr> <h3>Sie soll als Muster dienen!</h3> <applet code=ErstesLisaprogramm.class width=500 height=500></applet> </body> </html>
Hilfsmittel
Zum Schreiben der Seiten könnte man jeden beliebigen Editor verwenden, hilfreich ist jedoch die Verwendung eines Editors innerhalb einer Programmierumgebung, z.B. der JavaEditor. Der Vorteil gegenüber einem normalen Editor ist, dass hier direkt aus dem Programm heraus die Java-Datei kompiliert werden kann, d.h. vom menschenlesbaren Java-Quelltext in den maschinenlesbaren byte-Code übersetzt werden kann.
Durch das Kompilieren wird aus der Datei MeinDateiname.java dann die Datei MeinDateiname.class erstellt. Nur diese kompilierte Datei kann im Webbrowser über den <applet>-tag eingebunden werden.
Vom Quelltext zum laufenden Programm
Jedes LISA-Projekt beginnt gleich:
- Projektordner anlegen
- Lisa.class in den Ordner kopieren
- wenn vorhanden, Dateien mit dem Java- und HTML-Grundgerüst in den Ordner kopieren und umbenennen
- der Dateiname der Java-Datei und der Name des Programms (hinter
public class
) müssen exakt übereinstimmen (bitte mit Großbuchstaben anfangen) - in der HTML-Datei muss im
applet
-tag der Name des Programms angegeben werden
Das Programmieren von Java-Programmen läuft dann immer in drei Schritten ab:
- Ihr schreibt euren Quellcode in die Datei, die auf .java endet.
- Die Datei mit den Java-Befehlen wird kompiliert - geschieht das ohne Fehler, so wird eine maschinenlesbare Datei mit Bytecode erzeugt. Diese Datei endet dann auf .class.
- Über das <applet>-tag in der HTML-Seite wird die class-Datei dann in die Webseite eingebunden und das Applet kann mit Hilfe des Webbrowsers betrachtet werden.
Damit euer Programm fehlerfrei kompiliert werden kann muss sich die Datei Lisa.class im selben Verzeichnis wie euer Programm befinden, da euer Programm auf die Methoden der Klasse Lisa zugreifen muss.
Quelltext, Klasse und Methode
Eure Quelltextdatei sollte am Anfang im Kommentar Angaben zu euch (Autor), zur Erstellungszeit (Datum) und zum Inhalt des Programms enthalten. Danach kommen die import-Befehle. Erst dann beginnt die eigentlich Klasse, mit public class
dateiname extends Applet
.
Der Inhalt der eigentlichen Klasse folgt nach der public class
-Zeile, { eingeschlossen in zwei geschweifte Klammern }.
Innerhalb der Klasse findet sich zur Zeit genau eine Methode, nämlich die Methode mit der Signatur
public void paint(Graphics g)
Alles, was zu dieser Methode gehört, steht wieder { zwischen geschweiften Klammern }.
Programme lassen sich durch eigene Methoden übersichtlicher gestalten, diese stehen dann zwischen Lisa l;
und der paint-
Methode.
Durch geschicktes Überzeichnen lässt sich dann auch der Eindruck von Bewegung am Bildschirm erzeugen.
Grundlegende Befehle
Zuweisung
a = b; //a erhält den Wert von b
Schleifen
Ausführlich werden Schleifenstrukturen hier erklärt, die beiden wichtigsten sind die folgenden:
Zählschleife
for(int i=0; i < 10; i++){mache etwas} //der Block {mache etwas} wird 10 mal wiederholt
bedingte Schleife
while(x < 42) {mache etwas} //der Block {mache etwas} wird solange wiederholt, bis x < 42 nicht mehr gilt
Abfrage
if(x < 42) {mache das} //wenn x < 42 gilt, wird {mache das} ausgeführt if(x < 42) {mache dies} else {mache das} //wenn x < 42 gilt, wird {mache dies} ausgeführt, sonst {mache das}
Ausdrücke, um die Bedingung in der Abfrage anzugeben
a == b //Hat a denselben Wert wie b? a < b, a <= b //Ist a kleiner (kleiner oder gleich) b? a > b, a >= b //Ist a größer (größer oder gleich) b? a != b //Ist a ungleich b?
Prüfen auf wahr oder falsch
if(a == true) {mache das} if (a) {mache das} // beide Ausdrücke bedeuten: wenn a wahr ist, mache das if(a == false) {mache das} if(a != true) {mache das} if(!a) {mache das} //die drei Ausdrücke bedeuten: wenn a nicht wahr (also falsch) ist, mache das
Das Zeichen !
steht in Java für die Verneinung.
Verknüpfen von logischen Ausdrücken
a && b //a UND b soll gelten
a || b // a ODER b soll gelten
Das Zeichen &
findet man auf der Tastatur oberhalb der 6, das Zeichen |
auf der Taste mit < und > (wird erzeugt, indem zeitgleich [STRG], [ALT], [< > |] gedrückt wird, oder zeitgleich [ALT GR], [< > |]).
Zweites Quelltext-Beispiel
Der Quelltext des gezeigten Beispiels verwendet grundlegende JAVA-Befehle und zum Zeichnen die Befehle der Klasse Lisa.
/* Zeichnet versetzte Pentagramme * Ah, 2003 */ import java.applet.*; import java.awt.*; public class pentamehr extends Applet { Lisa l; void pentag(int winkel, int farbe) { l.pause(500); l.lisafarbe(farbe); l.li(winkel); l.vw(400); l.li(216); l.vw(400); l.li(216); l.vw(400); l.li(216); l.vw(400); l.li(216); l.vw(400); l.li(216); } public void paint(Graphics g) { l=new Lisa(g,500,12); for(int i = 1; i<=5; i++) { pentag(72, i); pentag(0,12); }; l.pause(100); repaint(); } }