Inhalt: Java -Definition  -+HTML  -Die Sprache  -Beispiele  -Oberflächenprog.  -Swing 
Java: Definition
Java ist eine 'einfache, objektorientierte, verteilte, interpretierte, robutste, sichere, architekturneutrale portable, hochleistungsfähige, Multithread-fähige und dynamische Sprache'. So beschreibt die Firma Sun, ein Hauptförderer der Sprache, Java.
Ob dies alles zutrifft - auf die gesamten Möglichkeiten kann hier nicht eingegangen werden.

Wesentlich bei Java ist die Eigenschaft 'interpretierte, architekturneutrale' Sprache.
Ausgangspunkt von Programmen bei Java ist, wie bei anderen Programmiersprachen, eine ASCII-Datei mit dem Quellcode.
Bei C++-Programmen wird mit einem Compiler der Objektcode und aus den Objektdateien des Projekts das ausführbare Programm erstellt.
Das Ergebnis ist plattformabhängig, d.h. trotz gleichen Quellcodes ist ein auf Windows compiliertes Programm nur auf Windows lauffähig, ein auf Unix compiliertes nur auf Unix.

Programmentwicklung
C++: Quellcode -compilieren-> Objektdatein, .obj
  Objektdateien -linken-> ausfuehrbares Programm, .exe
  Programm -ausfuehren- direkt auf Betriebssystemebene
Java: Quellcode -compilieren-> Java Byte Code, .class
  Java Byte Code -ausfuehren- nur innerhalb der Java Virtual Machine
des Betriebssystems

Java hingegen erzeugt bei der Compilation 'Java Bytecode' der 'plattformunabhängig' ist. Diese Dateien sind nicht auf Betriebssystemebene ausführbar, sondern werden von der 'Java Virtual Machine' interpretiert. Diese Interpreter gibt es für alle gängigen Betriebssysteme, so bleibt die 'Plattformunabhängigkeit' gewahrt.

Durch dieses Vorgehen ist i.a.R. der Zugriff auf die Ressourcen des Computers stark eingeschränkt und der Verbrauch von Rechnerleistung für diesen Umweg ist bei der Ausführung beträchlich.
Unbestritten ist aber: Java ist gerade durch diese Eigenschaft für die Programmierung im Web prädestiniert.

Javaprogramme können in Web-Seiten integriert werden; beim Laden einer Seite lädt der Browser auch den Bytecode und kann ihn mittels der integrierten Interpreter ausführen.

Um Java-Programme zu entwickeln sind ausser gutem Willen das 'Java Runtime Enviroment', jre, und das 'Java Development Kit', jdk, notwendig, siehe die Verweise .
Auf Windows sind dann nur noch die Variablen PATH und CLASSPATH zu setzen.

Java und HTML
Java-Anwendungen die in einer Web-Seite plaziert werden, heißen 'Applets'.
Hier ein Beispiel, in der ein Applet in den laufenden Text, ähnlich einer Grafik, eingebunden wird.

Beispiel: appbsp.html <html> <body> Dies ist eine HTML-Seite mit einem Java-Appelt.<br> <applet code="Raute.class" width=250 height=200> </applet><br> Das Applett stellt eine Grafik-Fl&auml;che dar, mit einer Schnecke. </body> </html> In dem Beispiel ist das Applet 250x200 Pixel groß und wird von Text eingefaßt.

Soll diese Seite auf einem Web-Server bereitgestellt werden,
so wird die Datei 'Raute.java' compiliert und der ByteCode 'Raute.class' in das gleiche Verzeichnis kopiert, wie die HTML-Seite.

Wird nun die HTML-Seite abgerufen, wird auch der ByteCode abgerufen und läft lokal beim Client in dessen Virtual-Java-Machine.

Wird ein Applet lokal entwickelt und mit einer lokalen HTML-Seite aufgerufen, wird der ByteCode zunächst im Verzeichnis der HTML-Seite gesucht; mittels Einstellungen der Variablen CLASSPATH, können aber auch andere Verzeichnisse durchsucht werden.

Wichtig ist die Beachtung der Java-Version.
Aktuell ist die Version 1.2, von den meisten Browsern wird die Version 1.1 unterstützt.
Da Umfang und Inhalt der Java-Versionen sich ändern, laufen Applets der neuesten Java-Versionen Gefahr von den Browsern nicht interpretiert zu werden.

Die Sprache Java
Kennzeichen der Sprache:

Java-API: Diese Klassen- und Funktionssammlung wird in Form einer Vielzahl von Pakten bereitgestellt. Das Paket 'java.awt' beinhaltet die Definitionen für Fenster, Grafik ect.. .
Javaprogramme schreiben, heißt diese API zu nutzen.
So müssen eigene Klassen von den Klassen der API abgeleitet werden.
Die eigene Klasse kann Funktionen hinzufügen, muß aber auch bestimmte Funktionen der Basisklasse, hier Superklasse genannt, überschreiben.

Das Applet-Beispiel: Raute.java
import java.applet.*; //1 import java.awt.*; public class Raute extends Applet //2 { public void init() //3 { setLayout(new GridLayout(1,1)); add(new MyRaute()); } } class MyRaute extends Component //4 { public void paint (Graphics g) { int x = getSize().width /5; int y = getSize().height /5; g.setColor(Color.black); g.drawLine(x, 4*y, 4*x, 4*y); g.fillOval(2*x, 4*y-y, x, y); } } Erklärungen:
//1: Durch import-Anweisungen werden die Java-Pakete vermerkt, die gebraucht werden. Werden Java-Klassen von diesen Paketen benutzt, kann bei der Angabe der Bezug zum Paket weggelassen werden: 'Applet' statt 'java.applet.Applet'. Diese Pakete werden gefunden, wenn die jdk installiert wurde und die Variable CLASSPATH das entsprechende Verzeichnis beinhaltet.

//2: Für ein Applet muß eine eigne Klasse von der Java-Klasse 'Applet' abgeleitet werden, hier 'Raute'.
Diese Klasse wird aufgerufen, wenn das Applet angezeigt wird.
Das Applet kann selber zeichnen, so könnte die Schnecke auch durch die paint-Funktion des Applets gezeichnet werden.
In dem Beispielprogramm wurde ein anderer Weg beschritten.

//3: Die init-Funktion des Applets wird zur Initialisierung ausgeführt; hier wird ein Objekt, 'MyRaute', angefügt.
Das Applet ist ein Container, der Componenten aufnimmt.
Der Container platziert die Componenten in einer bestimmten Art und Weise, die durch den Layout-Manager bestimmt wird, hier wird das GridLayout mit einer Spalte und einer Zeile verwendet.
Der Container informiert seine Componenten, das sie sich darstellen müssen, zB. beim Bildneuaufbau - die Darstellung selbst übernimmt die einzelne Componente.

//4: Die Superklasse aller grafikschen Objekte ist Component, von dieser wird 'MyRaute' abgeleitet.
Wird nun noch die Darstellungsfunktion 'paint' überschrieben' stellt sich 'MyRaute' als Teil des Applets 'Raute' selber dar.
Für die Darstellung wird ein Objekt der Klasse 'Graphics' benutzt; diese ist mit dem Graphical-Context vergleichbar. Graphics beinhaltet alle Einstellungen zum Zeichnen und mit Graphics wird gezeichnet.

Weitere Beispiele:

Oberflächenprogrammierung mit Java
Java bietet, wie auch in den Programmbeispielen ersichtlich, für die Oberflächenprogrammierung eine Menge:

Java Swing
'Swing' ist eine zusätzliche Klassenbibliothek, die auf dem Abstract Window Toolkit',AWT, aufsetzt. Mit Swing ist eine komfortablere Oberflächendefinition möglich.
Swing ist Teil der sogenannten 'Java Foundation Classes'.

Verfügbarkeit: Zu Java jdk 1.1 kann 'Swing 1.1.1' zusätzlich installiert und geladen werden,
in Java 2 ist 'Swing' enthalten.
Die Browser interpretieren heute in aller Regel jdk 1.1, so macht es wenig Sinn in Applets Swing-Code zu verwenden.

Swing ist eine umfassende Bibliothek, die teilweise AWT-Klassen erweitert, zum Teil aber auch neue Features wie Tables und Trees für Java bereitstellt.
Swing ist eine der neuesten Entwicklungen auf dem GUI-Gebiet, stellt umfassende Features zur Verfügung, ist allein deshalb schon interessant. Mit der Vielzahl der Möglichkeiten wird javaprogrammieren durch Swing nicht gerade vereinfacht.

Das EuroCalc-Beispiel mit Swing: hier .
Ein Beispiel für die Vielzahl der Möglichkeiten: im Beispielcode kann der 'UIManager.setLookAndFeel' für Motif, Windows oder Metal aktiviert werden.
So kann das Programm, unabhängig von dem Betriebssystem, das Design/Verhalten von Motif, Windows oder Metal annehmen.

Verweise für alles .

<Web-Programmierung    << Startseite    Homepage