AG-Intra.net Arbeitsgemeinschaft
Intranet

Home
Was ist ein Intranet
Grundlagen
Netzwerke
Linux
Windows
Java
Sicherheit
Datenbanken
Projekte
Links
Impressum
Mitmachen ?
Diskussionsforum
Letztes Update:
29.12.2000
I. Einführung . Java Tutorial
Copyright 2000 by Frank Gehde
. Inhaltsverzeichnis nächste Seite =>

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):

Screenshot Desktop

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)



Inhaltsverzeichnis nächste Seite =>

zurück zur Hauptseite
Copyright 2000 by Frank Gehde