Vorwort
Im folgendem Beispielprojekt beschränken wir uns auf das Wesentliche - die Erläuterung der allgemeinen Regeln und Konzepte dieser Sprache. Es wird weder eine grafische noch sonst eine optimierte Version vorliegen.
Hinweise
Um eine Java-Datei auf einer Internetseite anzeigen zu können, benötigt man nicht nur eine Datei, sondern mehrere - wie zum Beispiel eine HTML-Datei, welche das Applet (Java-Miniprogramm) lädt. Ausnahmen bestätigen die Regel, jedoch entählt ein Java-Projekt in den meisten Fällen folgende Dateien: *.html; *.class; *.java; *.jpr!
Achtung! Man sollte für jedes Projekt in Java einen eigenen Ordner anlegen, und ihn der Übersichtlichkeit wegen namentlich gleichsetzen.
Aufbau - Teil: 1
Wir gehen absichtlich nur auf den Aufbau des Quelltextes ein, den wir auch in unserem Beispielprojekt nutzen. Dieser kann aber auf die meisten kleinen Projekte übertragen werden.
Empfehlung: Nutzen Sie eine IDE, um mitzuarbeiten! Mehr dazu finden Sie in der Einleitung.
Wenn man ein neues Applet-Projekt startet, so wird eine Basisklasse erzeugt, mit der man beispielsweise ein 'Hallo-World' - Programm erstellen kann. Weiterhin sind die ersten beiden Zeilen sehr wichtig, welche auch einer expliziten Erklärung bedürfen:
import java.awt.*;
import java.applet.*;
Wie man aus dem Code erschließen kann, wird durch den Befehl import etwas dem Programmierer zur Verfügung gestellt. java.awt und java-applet stellen eine Art Objektbibliothek dar, welche aus vielen Klassen besteht. Der Stern * zeigt an, dass der Programmierer auf alle Klassen zugreifen kann. Würde man die ersten Zeilen entfernen, hätte man unnötige Arbeit zu leisten. So wäre zum Beispiel folgender Code nötig, um eine Instanz (von der Klasse abgeleitet) der Klasse Button zu erzeugen:
java.awt.Button Btn1; ... sonst nur: Button Btn1 !
Achtung an alle C/C++ Programmierer: Man braucht keine erzeugten Objekte wieder aus dem Speicher löschen; dies wird von Java selbst erledigt. Auch wird wirklich nur dann auf java.awt.* zugegriffen, wenn es nötig ist. So kommt es nie zu unnötigem Speicherverbrauch.
Zur Information: Die obigen Klassenbibliotheken werden von der Firma Sun zur Verfügung gestellt. Man kann natürlich beliebig andere Klassen-Bibliotheken von Drittanbietern nutzen, nur ist es denen verboten, ihre Bibliotheken mit java.***.* aufzurufen, denn dies ist ein eingetragenes Markenzeichen.
Aufbau - Teil: 2
Es ist wichtig zu wissen, dass eine Java-Datei immer nur aus einer Klasse besteht. Erfahrene Programmierer arbeiten so bereits in anderen Sprachen (aus Gründen der Übersichtlichkeit). Hier ein Beispiel für eine Klasse:
public class Klasse1 extends Applet
{
// Code
}
Was im Einzelnen in der Klasse passiert, werden wir später erläutern. Jetzt jedoch zuerst die Erklärung der Syntax des obigen Codes:
public: Eine Klasse verfügt wie in C++ über die Eigenschaft, verschiedene Zugriffsrechte verwalten zu können. Alle als public definierten Klassen (auch Variablen und Methoden) sind öffentlich und können ohne Einschränkung von außen eingesehen, genutzt und verändert werden. Es gibt weitere Zugriffsrechte, die zu erklären jedoch nicht der eigentliche Zweck dieser Sache ist. In einem anderen Kapitel wird es mehr dazu geben.
extends applet: extends heißt soviel wie erweitern. Wie man nun aus dem Sinn erschließen kann, wird die Klasse1 hier um die Funktionen und Eigenschaften eines Applets erweitert, was recht vorteilhaft ist.
Doch eine Klasse allein wird uns nicht reichen, um etwas Vernünftiges auf die Beine zu stellen. Aus diesem Grund muss die Klasse genutzt werden. Zum einen kann man gewöhnliche Dinge wie Deklarationen oder Anweisungen programmieren, zum anderen gibt es auch sogenannte Methoden, Eigenschaften sowie Zuständen der Basisklasse. Sie dienen auf der einen Seite der Übersichtlichkeit (ähnlich den Unterprogrammen unter DOS), auf der anderen Seite sind sie notwendig, um kompliziertere Applets zu erstellen. Hier ein Beispiel, welches bereits zum Beispielprojekt gehört:
public void init()
{
// Code
}
public boolean action (Event e, Object o)
{
// Code
}
Objekte kommunizieren über Nachrichten miteinander. Die Funktionen zum Behandeln und Versenden dieser Nachrichten werden als Methoden bezeichnet. Der obige Code zeigt zwei solche Methoden, die wir im nächsten Abschnitt mit Leben füllen werden.
void: Dieser Syntaxbefehl gibt an, dass die Methode keine Parameter bzw. Werte zurückgibt. Es ist jedoch nicht untersagt, dies trotzdem zu tun. Besser wäre eine der Methode zugeordnete Deklaration, wie in einigen Fällen zum Beispiel int...
boolean: Damit können logische Variablen deklariert werden, die zwei Werte annehmen können: true oder false.
Aufbau - Teil: 3
Dies stellt den letzten Teil dar, in dem wir noch einmal auf Grundlagen eingehen werden, damit dann endlich das Fundament gesetzt ist, den unten abgebildeten Code zu verstehen und umsetzen zu können. Wir werden im Folgendem erklären, wie man neue Objekte erzeugt (Button, Label, TextField), damit man noch einmal perfekt die Objektorientierung miterleben kann. Außerdem werden wir die Funktion vorstellen, mit der man einen Wert eines Textfeldes auf ein anderes überträgt und dort anzeigt.
1.) Wie erzeuge ich ein Textfeld, in das ich etwas schreiben kann?
Man leitet von der Klasse TextField (dass durch die oben erklärten Import-Befehle zur Verfügung steht) eine neue Instanz ab, welche man dann entsprechend seinen Wünschen anpassen kann. Syntax:
TextField TF1; // TF1 von TextField ableiten
TF1 = new TextField (20); // Instanz erzeugen und anpassen
2.) Wie wird das Textfeld nun im Applet sichtbar?
Durch den Befehl add fügt man dem Applet ein Objekt hinzu. Der Syntaxbefehl this ist hier nicht unbedingt notwendig, aber empfehlenswert. Dieser bedeuted, dass das Textfeld auf dem aktiven Objekt (hier dem Applet) hinzugefügt werden soll. Nun endlich der Code zur Darstellung von TF1:
this.add (TF1);
3.) Wie kann der Text von Feld1 auf Feld2 übergeben werden?
Auch jede abgeleitete Klasse (hier: TF1) verfügt über Eigenschaften, Methoden, etc. ihrer Basisklasse (Vererbung), so besitzt TF1 (vom Typ TextField) u.A. die Methode setText. Hier die einfache Syntax:
TF1.setText (TF2.getText());
getText ist ebenfalls eine Methode, die deshalb durch ein () abgeschlossen wird, hier jedoch parameterlos. Methoden, Eigenschaften, etc. werden durch einen Punkt getrennt. Wenn eine Eigenschaft ebenfalls wieder eine Eigenschaft besitzen würde, so würde das so aussehen:
Objekt1.eigenSchaft.unterEigenSchaft();
Hinweise:
(a) Methoden, Eigensch., etc. beginnen in Java immer klein.
(b) Java unterscheidet zwischen Groß- und Kleinschreibung.
© boolean (-Methoden) werden durch return (ggf. false) abgeschlossen.
Quellcode
Geschafft! Man kann nun stolz sein, die ersten Grundlagen von Java zu beherrschen. Die graue Theorie setzen wir jetzt in die Tat um. Viel Spaß!
import java.awt.*;
import java.applet.*;
public class Uebergabe extends Applet
{
Im vorgestellten Quelltext sind lediglich zwei Sachen, die wir noch klären sollten. Der erste Parameter der Action-Methode übergibt die Möglichkeit, auf Ereignisse zu reagieren. Dies macht sich auch unser Programm zu nutze, denn wir prüfen in dieser Methode, ob das Klickziel der Button btn ist. Wenn dem so ist, wird fortgefahren.
Damit man das Applet im Internet betrachten kann, ist (neben der nötigen Java-Unterstützung des Browsers) folgender HTML-Code nötig:
Dieser Javakurs ist nun leider auch schon in die Jahre gekommen, deshalb: Sollten Sie Interesse an der Weiterführung dieses Kurses haben, kontaktieren Sie uns bitte über das Kontaktformular.
Wir freuen uns auch immer über Ihre Meinung!
Im folgendem Beispielprojekt beschränken wir uns auf das Wesentliche - die Erläuterung der allgemeinen Regeln und Konzepte dieser Sprache. Es wird weder eine grafische noch sonst eine optimierte Version vorliegen.
Hinweise
Um eine Java-Datei auf einer Internetseite anzeigen zu können, benötigt man nicht nur eine Datei, sondern mehrere - wie zum Beispiel eine HTML-Datei, welche das Applet (Java-Miniprogramm) lädt. Ausnahmen bestätigen die Regel, jedoch entählt ein Java-Projekt in den meisten Fällen folgende Dateien: *.html; *.class; *.java; *.jpr!
Achtung! Man sollte für jedes Projekt in Java einen eigenen Ordner anlegen, und ihn der Übersichtlichkeit wegen namentlich gleichsetzen.
Aufbau - Teil: 1
Wir gehen absichtlich nur auf den Aufbau des Quelltextes ein, den wir auch in unserem Beispielprojekt nutzen. Dieser kann aber auf die meisten kleinen Projekte übertragen werden.
Empfehlung: Nutzen Sie eine IDE, um mitzuarbeiten! Mehr dazu finden Sie in der Einleitung.
Wenn man ein neues Applet-Projekt startet, so wird eine Basisklasse erzeugt, mit der man beispielsweise ein 'Hallo-World' - Programm erstellen kann. Weiterhin sind die ersten beiden Zeilen sehr wichtig, welche auch einer expliziten Erklärung bedürfen:
import java.awt.*;
import java.applet.*;
Wie man aus dem Code erschließen kann, wird durch den Befehl import etwas dem Programmierer zur Verfügung gestellt. java.awt und java-applet stellen eine Art Objektbibliothek dar, welche aus vielen Klassen besteht. Der Stern * zeigt an, dass der Programmierer auf alle Klassen zugreifen kann. Würde man die ersten Zeilen entfernen, hätte man unnötige Arbeit zu leisten. So wäre zum Beispiel folgender Code nötig, um eine Instanz (von der Klasse abgeleitet) der Klasse Button zu erzeugen:
java.awt.Button Btn1; ... sonst nur: Button Btn1 !
Achtung an alle C/C++ Programmierer: Man braucht keine erzeugten Objekte wieder aus dem Speicher löschen; dies wird von Java selbst erledigt. Auch wird wirklich nur dann auf java.awt.* zugegriffen, wenn es nötig ist. So kommt es nie zu unnötigem Speicherverbrauch.
Zur Information: Die obigen Klassenbibliotheken werden von der Firma Sun zur Verfügung gestellt. Man kann natürlich beliebig andere Klassen-Bibliotheken von Drittanbietern nutzen, nur ist es denen verboten, ihre Bibliotheken mit java.***.* aufzurufen, denn dies ist ein eingetragenes Markenzeichen.
Aufbau - Teil: 2
Es ist wichtig zu wissen, dass eine Java-Datei immer nur aus einer Klasse besteht. Erfahrene Programmierer arbeiten so bereits in anderen Sprachen (aus Gründen der Übersichtlichkeit). Hier ein Beispiel für eine Klasse:
public class Klasse1 extends Applet
{
// Code
}
Was im Einzelnen in der Klasse passiert, werden wir später erläutern. Jetzt jedoch zuerst die Erklärung der Syntax des obigen Codes:
public: Eine Klasse verfügt wie in C++ über die Eigenschaft, verschiedene Zugriffsrechte verwalten zu können. Alle als public definierten Klassen (auch Variablen und Methoden) sind öffentlich und können ohne Einschränkung von außen eingesehen, genutzt und verändert werden. Es gibt weitere Zugriffsrechte, die zu erklären jedoch nicht der eigentliche Zweck dieser Sache ist. In einem anderen Kapitel wird es mehr dazu geben.
extends applet: extends heißt soviel wie erweitern. Wie man nun aus dem Sinn erschließen kann, wird die Klasse1 hier um die Funktionen und Eigenschaften eines Applets erweitert, was recht vorteilhaft ist.
Doch eine Klasse allein wird uns nicht reichen, um etwas Vernünftiges auf die Beine zu stellen. Aus diesem Grund muss die Klasse genutzt werden. Zum einen kann man gewöhnliche Dinge wie Deklarationen oder Anweisungen programmieren, zum anderen gibt es auch sogenannte Methoden, Eigenschaften sowie Zuständen der Basisklasse. Sie dienen auf der einen Seite der Übersichtlichkeit (ähnlich den Unterprogrammen unter DOS), auf der anderen Seite sind sie notwendig, um kompliziertere Applets zu erstellen. Hier ein Beispiel, welches bereits zum Beispielprojekt gehört:
public void init()
{
// Code
}
public boolean action (Event e, Object o)
{
// Code
}
Objekte kommunizieren über Nachrichten miteinander. Die Funktionen zum Behandeln und Versenden dieser Nachrichten werden als Methoden bezeichnet. Der obige Code zeigt zwei solche Methoden, die wir im nächsten Abschnitt mit Leben füllen werden.
void: Dieser Syntaxbefehl gibt an, dass die Methode keine Parameter bzw. Werte zurückgibt. Es ist jedoch nicht untersagt, dies trotzdem zu tun. Besser wäre eine der Methode zugeordnete Deklaration, wie in einigen Fällen zum Beispiel int...
boolean: Damit können logische Variablen deklariert werden, die zwei Werte annehmen können: true oder false.
Aufbau - Teil: 3
Dies stellt den letzten Teil dar, in dem wir noch einmal auf Grundlagen eingehen werden, damit dann endlich das Fundament gesetzt ist, den unten abgebildeten Code zu verstehen und umsetzen zu können. Wir werden im Folgendem erklären, wie man neue Objekte erzeugt (Button, Label, TextField), damit man noch einmal perfekt die Objektorientierung miterleben kann. Außerdem werden wir die Funktion vorstellen, mit der man einen Wert eines Textfeldes auf ein anderes überträgt und dort anzeigt.
1.) Wie erzeuge ich ein Textfeld, in das ich etwas schreiben kann?
Man leitet von der Klasse TextField (dass durch die oben erklärten Import-Befehle zur Verfügung steht) eine neue Instanz ab, welche man dann entsprechend seinen Wünschen anpassen kann. Syntax:
TextField TF1; // TF1 von TextField ableiten
TF1 = new TextField (20); // Instanz erzeugen und anpassen
2.) Wie wird das Textfeld nun im Applet sichtbar?
Durch den Befehl add fügt man dem Applet ein Objekt hinzu. Der Syntaxbefehl this ist hier nicht unbedingt notwendig, aber empfehlenswert. Dieser bedeuted, dass das Textfeld auf dem aktiven Objekt (hier dem Applet) hinzugefügt werden soll. Nun endlich der Code zur Darstellung von TF1:
this.add (TF1);
3.) Wie kann der Text von Feld1 auf Feld2 übergeben werden?
Auch jede abgeleitete Klasse (hier: TF1) verfügt über Eigenschaften, Methoden, etc. ihrer Basisklasse (Vererbung), so besitzt TF1 (vom Typ TextField) u.A. die Methode setText. Hier die einfache Syntax:
TF1.setText (TF2.getText());
getText ist ebenfalls eine Methode, die deshalb durch ein () abgeschlossen wird, hier jedoch parameterlos. Methoden, Eigenschaften, etc. werden durch einen Punkt getrennt. Wenn eine Eigenschaft ebenfalls wieder eine Eigenschaft besitzen würde, so würde das so aussehen:
Objekt1.eigenSchaft.unterEigenSchaft();
Hinweise:
(a) Methoden, Eigensch., etc. beginnen in Java immer klein.
(b) Java unterscheidet zwischen Groß- und Kleinschreibung.
© boolean (-Methoden) werden durch return (ggf. false) abgeschlossen.
Quellcode
Geschafft! Man kann nun stolz sein, die ersten Grundlagen von Java zu beherrschen. Die graue Theorie setzen wir jetzt in die Tat um. Viel Spaß!
import java.awt.*;
import java.applet.*;
public class Uebergabe extends Applet
{
-
TextField t1, t2;
Button btn;
Label l1, l2;
public void init( )
{
-
t1 = new TextField( 20 );
t2 = new TextField( 20 );
btn = new Button( "Start" );
l1 = new Label( "1. Feld" );
l2 = new Label( "2. Feld" );
this.add( btn );
this.add( l1 );
this.add( t1 );
this.add( l2 );
this.add( t2 );
public boolean action( Event e, Object o )
{
-
if( e.target == btn )
{
-
t2.setText( t1.getText( ) );}
return true;
Im vorgestellten Quelltext sind lediglich zwei Sachen, die wir noch klären sollten. Der erste Parameter der Action-Methode übergibt die Möglichkeit, auf Ereignisse zu reagieren. Dies macht sich auch unser Programm zu nutze, denn wir prüfen in dieser Methode, ob das Klickziel der Button btn ist. Wenn dem so ist, wird fortgefahren.
Damit man das Applet im Internet betrachten kann, ist (neben der nötigen Java-Unterstützung des Browsers) folgender HTML-Code nötig:
<HTML>
<HEAD>
<TITLE>MyApplet Example1</TITLE>
</HEAD>
<BODY>
<H1>MyApplet</H1>
<HR>
<P>
<APPLET CODE=Uebergabe.class
WIDTH=300 HEIGHT=100>
</APPLET>
</P>
<HR>
</BODY>
</HTML>
AusblickDieser Javakurs ist nun leider auch schon in die Jahre gekommen, deshalb: Sollten Sie Interesse an der Weiterführung dieses Kurses haben, kontaktieren Sie uns bitte über das Kontaktformular.
Wir freuen uns auch immer über Ihre Meinung!
Sie können den ganzen Javakurs als ZIP-Datei herunterladen. Die Datei javakurs.zip hat eine Größe von 6 KB.
http://www.hanewald.info/javakurs.zip
http://www.hanewald.info/javakurs.zip
Kursteil 1- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Linkmöglichkeit auf diese Seite
Diese Seite einem Freund empfehlen
Fragen, Meinungen oder Ideen