Liebe Besucher, ein aktueller Hinweis in
eigener Sache:
Es ist beabsichtigt, diese Seiten und die Domain im Januar/Februar 2004 auf
einen anderen Server umzuziehen. Es ist leider nicht auszuschließen,
daß es während des Umzugs zu technischen Problemen mit diesen
Seiten kommen wird. Insbesondere im eMail-Bereich wird es vermutlich Probleme
geben. Wenn Sie fragen haben oder mich sonstwie erreichen wollen empfehle
ich an rebel@snafu.de zu posten.
Nachdem der Umzug abgeschlossen ist, wird es allerdings auch inhaltliche Änderungen
während des ersten Halbjahrs 2004 geben. Keine Angst. Es werden keine
Inhalte verlorengehen, aber die Struktur der Seiten wird komplett geändert.
Diese Seite hat eben eine andere Entwicklung genommen seit 2000, als das Projekt
gestartet wurde ;-) Ich werde mich bemühen, daß bei ihnen vorhandene
alte Bookmarks wenigstens zu einem Verweis auf die Neustruktur führen,
und die gesuchten Inhalte für sie trotzdem leicht und schnell auffindbar
sein werden.
Die eigentlich zu dieser Seite gehörenden Domains ag-intra.com, ag-intra.org
und ag-intra.de werden von mir geschlossen bzw. gelöscht und unregistriert.
Als ich mit dem
Schreiben des Tutorials begonnen habe, wußte ich noch nicht, wieviele
Erklärungen ich schon in Beispiel 1 machen werde, und sprach die Empfehlung
aus, schon Vorkenntnisse mitzubringen. Inzwischen glaube ich fast, daß
man auch ohne größere Vorkenntnisse mit dem Tutorial arbeiten
kann (um dies zu vervollständigen, werde ich irgendwann noch eine Einführung
in die imperativen Bestandteile von Java nachschieben).
Ich habe auch gemerkt, wo der Anspruch
des Tutorials einzuordnen ist. Es handelt sich hier nicht um eine akademische
Abhandlung. Alles was ich schreibe, kann man auch noch präzisieren.
Manchmal verallgemeinere ich evtl. stark. Ich versuche aber stets, nichts
falsches zu schreiben. Das Tutorial zielt eben mehr darauf ab, praktisches
Programmieren mit Java zu lernen, und nicht ein ausgezeichneter Informatik-Theoretiker
zu werden.
Ziel dieses Tutorials ist es, von der einfachsten
Anwendung bis zu einer heute typischen Anwendung und zu einer Datenbankanbindung
verschiedene Zwischenstufen anhand von konkreten Programmen zu entwickeln,
und diese ausführlich zu kommentieren.
Für Javaeinsteiger mit Programmierkenntnissen
aus nicht-objektorientierten Sprachen dürfte insbesondere das Objektmodell
zunächst eine ziemliche Hürde sein. Wer schon z.B. C++ Kenntnisse
hat, dürfte damit weniger Probleme haben, und schreckt halt nur vor der
Einarbeitung in die API zurück. Aber das trifft alle gleich hart.
Ich persönlich hatte zuletzt nur Erfahrungen
mit VisualBasic. Das ist eine gar nicht so schlechte Sprache und Entwicklungsumgebung.
Aber die resultierenden Programme laufen eben nur unter Windows.
Apropos Entwickulngsumgebung: Mit dem
JDK ist es schon etwas aufwendiger (aber eigentlich nur Fleißarbeit)
grafische Oberflächen zu programmieren. Das war in VB schön, wo
man die einzelnen Komponenten einfach auf ein leeres Fenster draufzeichnen
konnte. Das geht für Java auch. Es gibt von Borland, Inprise, Sun u.a
Entwicklungsumgebungen (auch kostenlos), die es erlauben, ebenfalls visuell
zu entwickeln. Ich habe mir diese Tools angesehen. Abgesehen vom Ressourcenhunger
generieren die Umgebungen aber automatisch derart viel Code, daß man
gerade als Einsteiger absolut keine Planung hat, wo man etwas verändern
muß, oder einfügen muß, um sein Programm zum laufen zu bekommen.
Ich persönlich habe immer irgendwie ein blödes Gefühl, wenn
ich Programme schreibe, und von 80% des Codes nicht weiß, warum er dasteht
und was er macht. Daher bevorzuge ich inzwischen das JDK von Sun, welches
über die Konsole zu bedienen ist. Der Code den ich schreibe, stammt
zu 100% von mir. Und ich komme nicht in Versuchung, die Zusatzbibliotheken
der IDE-Hersteller zu nutzen. Damit sind meine Programme mit einer üblichen
JRE lauffähig (in der Regel).
Entwicklungsumgebungen werden laufend verbessert,
und wer später einmal umsteigen möchte ... bitteschön. Aber
wer mit dem JDK anfängt, versteht dann später auch, was die automatischen
Generatoren fabrizieren.
Zu der hier verwendeten Umgebung: Java
ist plattformübergreifend. Unter irgendeiner Plattform mußte ich
dieses Tutorial aber entwickeln. Da ich leider noch kein Java 2 für
Linux habe (keine dummen Fragen an dieser Stelle *g*), habe ich das Tutorial
also unter Windows 9xentwickelt. Die Beispiele, die hier im Tutorial
verwendet werden, sollten genauso unter Linux und Solaris funktionieren wie
unter Windows (obwohl dies nicht getestet wurde). Die Quelltextdateien, die
zum Download angeboten werden, liegen jedoch im Textformat von Windows vor.
Unter UNIX-Systemen sind daher ggf. zunächst Konvertierungsschritte
durchzuführen. Eine weitere Eigenart der Windows-Entwicklung liegt darin,
daß ich nur die JDK-Installation der Windows-Version beschreibe. Außerdem
spreche ich überall dort von der MS-DOS Eingabeaufforderung, wo die Konsole
gemeint ist. Ich hoffe, daß dies niemanden wirklich abschreckt.
Es ist logischerweise angeraten, weitere
Informationsquellen zu Rate zu ziehen. Wer des englischen mächtig ist
(wer es noch nicht ist, sollte sich das schnellstens aneignen) sollte unbedingt
die Tutorials unter "http://www.javasoft.com"
studieren.
Empfehlenswerte Literatur zu dem Thema
ist für Einsteiger auch das Buch "Java
2 in 21 Tagen" vom SAMS-Verlag. Für das Verständnis von Java-Beans
kann man das Buch "JavaBeans" von Markt und Technik empfehlen (ggf. nur noch
gebraucht erhältlich). Und wer tief in die JDBC-Programmierung einsteigen
will, dem ist das Buch "Anwendungsprogrammierung
mit JDBC" im Hansa-Verlag wirklich zu empfehlen. Wer schließlich
so einigermaßen klarkommt, kann sich das "Java-Programmierhandbuch
für die Java2 Plattform" vom dPunkt-Verlag besorgen. Dieses Buch
ist für den absoluten Einsteiger vermutlich zu trocken, aber schließlich
eine unentbehrliche Referenz für den Fortgeschrittenen (leider sind die
JFC nicht abgehandelt). Für die JFC-Programmierung (Java Foundation Classes)
habe ich leider nur ein Buch gefunden, welches tauglich scheint. Es ist extrem
technisch formuliert und stammt von einem der Swing-Entwickler, kostet zweihundert
Mark (!?!) und heißt "Graphic
Java 2.0, Bd.2, Swing" (Prentice Hall / Sun Microsystems Press). Ich glaube
nicht, daß ich noch ein anderes Buch über Swing benötige.
Wer nur einige einfache Swing-Beispiele sucht, und zusätzlich noch andere
interessante Java-Programmierbeispiele, könnte sich das Buch "Internetprogrammierung
mit Java" (Data Becker) näher anschauen.
Abgesehen davon sollte bei der Java-Programmierung
IMMER die API-Dokumentation im Verzeichnis "docs" in einem Browser geöffnet
sein. Ein typischer Desktop eines JDK-Entwicklers sollte also etwa so aussehen
(die API-Dokumenation sehen Sie im Browser unten links):
Im folgenden finden sie mehrere Kapitel, die sich jeweils
einem bestimmten Thema widmen, und dazu ein oder mehrere komplette Besipielprogramme
analysieren:
- Hallo Welt (Java Grundlagen)
- AWT-Anwendung (Grafische
Oberflächen Teil 1)
- TicTacToe-Applet (Applets,
eigene Komponenten)
- Swing Anwendung (Grafische
Oberflächen Teil 2, Datums-Behandlung, eigene Komponenten)
- eMail Client mit Swing (Swing Vertiefung, Netzwerkprogrammierung)
- Datenbankprogramm mit JDBC, Swing und MySQL (Datenbankprogrammierung)
Am einfachsten Programm kommen wir nicht
vorbei, der "Hallo Welt"-Anwendung. Hier besprechen wir auch noch einmal,
wo man das JDK herbekommt, wie man den Browser fit macht, was ggf. an Umgebungsvariablen
notwendig ist etc. (alles Win9x bezogen).
Die nächste Anwendung wird eine Einfachst-AWT-Anwendung
sein, um auch endlich mal ein echtes Fenster auf dem Schirm zu sehen. Hier
wird eben auf das Paket AWT eingegangen und auch zum ersten Mal auf das Thema
Event-Behandlung.
Applets werden hier nicht schwerpunktmäßig
behandelt, aber auch nicht ausgelassen. An diesem Beispiel dürfen Sie
sich in der Fehlersuche üben, und erfahren etwas über den Unterschied
zwischen Applikationen und Applets.
Der nächste Schritt ist führt
uns zu den JFC. Hier programmieren wir die erste "sinnvolle" Anwendung mit
Swing (einem Bestandteil der JFC). Es wird um die Unterschiede zu AWT gehen,
und zusätzlich um die Behandlung von Datum's.
Die nächste "sinnvolle" Anwendung
wird mit dem Swing eMail-Client erreicht. Hier geht es dann um weitere Custom
Data Models, Trees, Split Panes und auch um das Paket java.net.*. Insbesondere
die Baum-Darstellung von Objekten bzw. Dokumenten, und die synchronisierte
Anzeige dürften die Basis für eine Menge moderner Programme bilden,
so daß dieses Programm die Basis für viele weitere Programme bilden
kann.
Das nächste Ziel ist davon abweichend,
dürfte aber für die Programmierung von Productivity-Software für
Intranets oder das Internet nicht minder wichtig sein, ein Frontend für
eine Datenbank, und ein kleines Middleware-Programm. Hier wird ergänzend
zum eben gesagten dann noch die JDBC-Datenbankanbindung besprochen.
So, wenn wir das alles bewältigt
haben, haben wir nicht nur viel geleistet, viele tausend Zeilen Code geschrieben,
nein wir haben uns eine Arbeitsgrundlage und Referenz geschaffen, mit der
wir jedes Programm entwickeln können, welches wir mit Java entwickeln
wollen.
Hinweis: Der Sprachgebrauch im
Tutorial ist übrigens so, daß hier nicht zwanghaft eingedeutscht
wird. Die Originaldokumentation zum JDK ist in englisch verfasst, und auch
die mitgelieferten Klassen basieren auf englischer Sprache. Ich mische das
bunt, wie es sich gerade anbietet.
- Frank Gehde, 15.10.2000 (geändert 29.12.2000)
zurück
zur Hauptseite |