Anzeige
Tutorialbeschreibung

Javascript und Ajax - Java

Javascript und Ajax - Java

Das nun folgende Tutorial ist ein Auszug aus der 7. Auflage des Buches: JavaScript und Ajax von Christian Wenz.

Musik ist heutzutage oft nur Lärm mit Copyright. – Peter Holl

Hab ich doch, Freunde, immer mit Recht den Caffé gehasst. – Johann Wolfgang von Goethe

Kapitel 24 Java

Wenn Sie sich so weit durch das Buch hindurchgekämpft haben, werden Sie festgestellt haben, dass man mit JavaScript tolle Effekte realisieren kann. Wozu braucht man überhaupt noch Java? Nun, Java besitzt wesentlich umfangreichere Fähigkeiten: angefangen bei der Möglichkeit des Dateizugriffs über Datenbankoperationen bis hin zu den grafischen Darstellungsmöglichkeiten. Java hat also durchaus seine Existenzberechtigung im World Wide Web. Aus diesem Grund findet Java auch in diesem Buch Erwähnung. Man kann nämlich mit JavaScript die Java-Programme in einem HTML-Dokument in gewisser Hinsicht ansteuern. So können sich Java und JavaScript gut ergänzen.

 

24.1 Allgemeines  

Eines gleich vorweg: Dieses Buch soll keine Java-Einführung sein, es geht hier lediglich um JavaScript. Um dieses Kapitel voll verständlich zu machen, benötigt man einige Zeilen Java-Code, das lässt sich nicht vermeiden. Ich habe aber versucht, diesen Teil so kurz und so einfach wie möglich zu halten. Da sich die Syntax von Java und JavaScript zum Teil ziemlich ähnelt, können Sie auch ohne Java-Erfahrung – aber mit inzwischen tiefschürfenden JavaScript-Kenntnissen – die vorgestellten Beispiele nachvollziehen. Auch wenn Sie vielleicht nicht jeden einzelnen Befehl verstehen, sollte wenigstens die prinzipielle Vorgehensweise klar werden. Um ein paar einführende Worte kommt man eben nicht herum.

 

24.1.1 Wie funktioniert Java? 

Java ist eine plattformunabhängige Programmiersprache, deren Syntax sich an die Programmiersprache C++ anlehnt. Java-Programme werden in einen so genannten Byte-Code kompiliert. Die meisten Internet-Browser haben eine Java Virtual Machine (Java VM oder auch JVM), die diesen Byte-Code auf der jeweiligen Plattform interpretiert und die Befehle ausführt. Der besondere Vorteil besteht darin, dass der Byte-Code auf jeder Plattform identisch ist. Daher rührt die Bezeichnung »plattformunabhängige Sprache«. Einzig und allein die Virtual Machines unterscheiden sich. Das Konzept von Java heißt auch »written once, runs everywhere« – einmal programmiert, funktioniert es überall. Insbesondere müssen Sie sich nicht um die Portierung Ihres Codes auf die verschiedensten Plattformen kümmern, das haben die Hersteller der Virtual Machine schon erledigt.

Der Nachteil von Java liegt auf der Hand: Da das Programm nicht betriebssystemspezifisch kompiliert worden ist, muss der Byte-Code von der VM interpretiert werden, und das dauert recht lange. Aus diesem Grund sind kompilierte Programme immer noch etwas schneller. Der Vorsprung schwindet allerdings, da die Entwicklung der Virtual Machines fortschreitet und so genannte JIT-Compiler (Just-In-Time-Compiler) in der Lage sind, Java-Code nicht anfangs am Stück zu interpretieren, sondern immer dann, wenn das entsprechende Programmsegment zur Ausführung kommt. Die wahren technischen Zusammenhänge sind weitaus komplizierter, aber Sie wollen sicherlich so schnell wie möglich zum Thema JavaScript zurückkommen – also weiter im Text.

Kompilierte Java-Programme haben die Endung .class. Ein für den nicht-kommerziellen Einsatz kostenloser Compiler ist auf der Website des Java-Erfinders Sun unter http://java.sun.com/ zu finden – halten Sie nach dem Java Development Kit, kurz JDK, Ausschau. Auf der Buch-DVD finden Sie ebenfalls eine Ausgabe der Software.

Bei Java ist die neueste Version zwar meistens die beste, nicht jedoch automatisch für den Web-Einsatz. Bei älteren Versionen des Internet Explorers und Netscape (Version 4!) wird nur eine Anno-Tobak-Version 1.1 mitgeliefert; andere (modernere) Browser werden meist komplett ohne Java ausgeliefert. Zwar ist es problemlos möglich, alle Browser (also auch IEs und Netscapes) durch einen Download von http://java-.sun.com/ mit einer neueren Java-Version zu versorgen, aber das machen nur die wenigsten Nutzer. Mögliches Zwischenfazit: Kompilieren Sie Ihre Java-Applets, wenn möglich, mit Java 1.1, dann können die meisten Benutzer Ihre Programme ohne Extra-Download ausführen.

Es gibt leider noch ein weiteres Problem: Als Konsequenz aus einem Gerichtsverfahren liefert Microsoft seit einiger Zeit mit dem Internet Explorer kein Java mehr mit. Sprich, ohne Zusatz-Download geht eh nichts. Wenn Sie sich auf diesen Standpunkt stellen, können Sie Ihre Applets auch mit einer recht aktuellen Java-Version kompilieren.

Die Wahrheit liegt wie immer irgendwo in der Mitte: Natürlich benötigen Ihre Benutzer eine Java-Version, aber nicht alle aktualisieren immer auf die neueste Ausgabe. Versuchen Sie deswegen, immer eine möglichst niedrige Version einzusetzen; 1.1 muss es aber nicht unbedingt sein. Die Beispiele auf der Buch-DVD sind übrigens alle mit JDK 1.1. kompiliert worden, aber auch einfach gehalten.

Java-Programme werden mit dem <applet>-Tag in die HTML-Seite eingebunden. Im Parameter code wird der vollständige Name der .class-Datei angegeben, und in den Parametern width und height werden – wie beim <img>-Tag auch – die Ausmaße des Applets auf dem Bildschirm angegeben. Wichtig ist wie immer das name-Attribut. Formular-Experten wissen, warum:

<applet code="applet.class" name="Applet" width="300" height="200">

   Ihr Browser unterstützt kein Java, oder Sie haben es

   ausgeschaltet!

</applet>

Der Text zwischen <applet> und </applet> wird genau dann angezeigt, wenn der Browser des Benutzers kein Java unterstützt oder Java nicht installiert worden ist. Auch, wenn Java deaktiviert ist, erscheint der Hinweistext im Browser.


24.1.2 Kurzeinführung in Java  

In den folgenden Absätzen werde ich das Grundkonzept von Java grob erklären. Vor allem die Java-Kenner mögen über Auslassungen, Ungenauigkeiten und Vereinfachungen hinwegsehen. Das Thema dieses Buches ist und bleibt JavaScript, und Java wird nur so weit erläutert, wie es für das Verständnis dieses Kapitels nötig ist.

In Java sind alle Daten in Objekten organisiert, so ähnlich wie in JavaScript ja auch – so weit, so gut. Statt Objekt nennt man eine Ansammlung von Methoden und Eigenschaften innerhalb von Java Klasse. Ein Grundgerüst einer Klasse sieht folgendermaßen aus:

class klassenname{

// irgendwelche Kommandos

}

Jede Klasse kann Methoden und Eigenschaften enthalten. Die Besonderheit ist, dass der Typ des Rückgabewerts jeder Methode im Methodenkopf direkt angegeben wird, was ein großer Unterschied im Vergleich zu JavaScript ist, das sich im Hinblick auf Variablentypen sehr flexibel verhält. Beispiele für solche Typen sind int für Zahlenwerte, boolean für Wahrheitswerte – und void, wenn nichts zurückgegeben wird. Auch bei Parametern für die Methoden muss der Typ angegeben werden.

public class klassenname{

   private int quadrat(int i){

      return i*i;

   }

   public pythagoras(int kathete1, int kathete2){

      int summe = quadrat(kathete1) + quadrat(kathete2);

      return Math.sqrt(summe);

   }

}

Eine weitere Eigenheit von Java besteht darin, dass nicht alle Methoden und Eigenschaften von überall her abgefragt werden können. Im obigen Beispiel kann die Funktion quadrat(), die mit dem Schlüsselwort private gekennzeichnet ist, nur innerhalb dieser Klasse aufgerufen werden, also nicht von anderen Klassen aus. Die Funktion pythagoras(), die übrigens die Länge der Hypotenuse in einem rechtwinkligen Dreieck berechnet – also die Länge derjenigen Seite, die dem rechten Winkel gegenüber liegt – und dabei quadrat() benutzt, ist durch das Schlüsselwort public gekennzeichnet. Dieses gibt an, dass diese Methode von überall her aufgerufen werden darf – auch von JavaScript aus!

Die wohl größte Fehlerquelle am Anfang ist die Tatsache, dass jeder Befehl mit einem Semikolon beendet werden muss! Da wünscht man sich manchmal das nicht so strenge JavaScript herbei.

24.2 Java und das WWW 

Um ein Java-Programm im Browser betrachten zu können, muss es sich um ein so genanntes Applet handeln. Dadurch ändert sich der schematische Aufbau ein wenig. Die genauen Details sollen uns aber nicht interessieren. Auf der DVD zu diesem Buch finden Sie das kompilierte Applet, und Sie können es auch direkt ausprobieren.


24.2.1 Ein Beispiel-Applet 

Das folgende Applet wird in diesem Kapitel als Beispiel verwendet. Es zeichnet zu Anfang einen roten Kreis, denn die Methode paint() wird beim Laden des Applets aufgerufen. Außerdem gibt es noch eine Methode auswahl(), die anscheinend ein paar Variablen des Applets verändert und dann wieder paint() aufruft. Wenn Sie das Ganze selbst ausprobieren wollen, müssen Sie den Java-Quelltext unter demselben Namen wie die Klasse abspeichern. Letztere heißt ball, also wird der Quelltext unter ball.java abgespeichert.

import java.applet.*;

import java.awt.*;

public class ball extends Applet{

   private int radius = 100;

   private Color farbe = Color.red;

   public void paint(Graphics g){

      g.setColor(Color.white);

      g.fillRect(0, 0, 449, 449);

      g.setColor(farbe);

      g.fillOval(225-radius, 225-radius, 2*radius-1,

      2*radius-1);

   }

   public void auswahl(int neuer_radius, String

   farbcode){

      this.radius = neuer_radius;

         if (farbcode.equals("rot"))

            {this.farbe=Color.red;} else

         if (farbcode.equals("blau"))

            {this.farbe = Color.blue;} else

         if (farbcode.equals("gruen"))

            {this.farbe = Color.green;} else

               this.farbe = Color.black;

      paint(getGraphics());

   }

}

 

24.2.2 HTML-Integration

Das Ziel dieses Beispiels ist, mit JavaScript dieses Applet anzusteuern. Dazu soll folgendes HTML-Grundgerüst als Basis dienen. In einem Formular kann man den Radius des Kreises eingeben und via Radiobutton die Farbe des Kreises auswählen.

<html>

<head>

<title>Java und JavaScript</title>

<script "text/javascript"><!--

function java(f) {

   if (navigator.javaEnabled()) {

      var radius = parseInt(f.radius.value);

      if (isNaN(radius) || radius>200 || radius<1) {

         radius = 200;

      }

      var farbe = f.farbe[0].checked ? "rot" :

         (f.farbe[1].checked ? "blau" : "gruen");

      document.ball.auswahl(radius, farbe);

   } else {

      alert("Bedaure, bei Ihrem Browser ist Java deaktiviert");

   }

}

//--></script>

</head>

<body>

<h1>Java und JavaScript</h1>

<applet code="ball.class" name="ball" width="450" height="450">

   Ihr Browser unterstützt kein Java!

</applet>

<form>

Radius (von 1 bis 200): <input type="text" name="radius" size="3" />

<br />

Farbe:

 <input type="radio" name="farbe" value="rot" /> rot -

 <input type="radio" name="farbe" value="blau" /> blau -

 <input type="radio" name="farbe" value="gruen" /> grün<br>

<input type="button" value="Zeichnen" onclick="java(this.form);" />

</form>

</body>

</html>

Bilder

Abbildung 24.1     Java-Applets mit JavaScript steuern

Nüchtern analysiert, erledigt die Funktion java() Folgendes: Zuerst wird navigator.javaEnabled() abgefragt. Diese Methode gibt an, ob der Benutzer im Browser Java aktiviert hat. Ein Nebeneffekt dieser Abfrage ist, dass die Java Virtual Machine gestartet wird, sofern das noch nicht geschehen ist. Das dauert oft eine Weile. In diesem Fall fällt das aber nicht ins Gewicht, da aufgrund des Applets innerhalb der HTML-Seite die Virtual Machine ohnehin schon gestartet worden ist.

Als Nächstes liest die Funktion java() die Formularwerte ein und wandelt die Eingabe im Radius-Eingabefeld in eine Zahl zwischen 1 und 200 um.

Die Umwandlung der Zeichenkette in eine Zahl ist prinzipiell gar nicht nötig, das geschieht automatisch. Allerdings musste ja noch der Radius gegebenenfalls innerhalb des Intervalls von 1 bis 200 untergebracht werden.

Die interessanteste Zeile der Funktion ist:

document.ball.auswahl(radius, farbe);

Mit document.ball wird auf das Applet in der HTML-Seite zugegriffen, denn dieses hat das name-Attribut ball. Mit document.ball.auswahl() greifen Sie also auf die Methode auswahl() im Applet zu. Generell gilt, dass man mit JavaScript auf alle Methoden des Applets zugreifen kann, sofern sie als public deklariert worden sind. Den Rest erledigt in diesem Beispiel das Applet. Die entsprechenden Parameter werden verändert, und der Kreis wird neu gezeichnet.

Leider sorgt die Kommunikation zwischen Java und JavaScript auf der Mac-Plattform für Probleme. Safari (und damit Konqueror auch) unterstützten zwar Java, wenn die Java-Erweiterung für Mac OS installiert ist, aber nicht den Zugriff darauf von JavaScript aus. Auch der Internet Explorer kann unter Mac nicht per JavaScript auf ein eingebettetes Applet zugreifen. Allerdings gibt es Hoffnung für die Mac-Jünger: Aktuelle Versionen der OS-X-Browser unterstützen wieder den JavaScript-Zugriff auf Java-Applets – allerdings erst ab OS X 10.3.

Bilder

Abbildung 24.2     Java funktioniert, der JavaScript-Zugriff nur in neueren Versionen

Der Netscape Navigator bietet des Weiteren die Möglichkeit, von Java-Programmen aus JavaScript-Objekte anzusprechen. Diese Möglichkeit bietet der Microsoft Internet Explorer nicht, und die Funktionalität kann man auch in der anderen Richtung bereitstellen (d. h., man kann von JavaScript aus geeignete Java-Methoden aufrufen). Auch in neueren Mozilla-Browsern sucht man nach diesen Features vergeblich, weswegen wir sie hier außen vor lassen.

24.3 Java ohne Applet  

Man braucht nicht unbedingt ein Applet, um Java-Methoden von JavaScript aus aufzurufen. Gewisse Grundobjekte von Java können auch direkt aufgerufen werden. Beispielsweise hat man so zu Zeiten des Netscape Navigator 3 versucht, die Höhe und Breite des Bildschirms zu bestimmen, weil es damals screen.width und screen.height noch nicht gab, wohl aber entsprechende Java-Methoden. Diese Vorgehensweise wird jedoch nur relativ selten verwendet; meistens benötigt man nicht nur ein mitgeliefertes Java-Objekt, sondern gleich eine (programmierte) Java-Funktion, und dann muss man ein Applet verwenden.

Wenn Sie eine (programmierte) Java-Funktion verwenden wollen, beispielsweise eine Nullstellenberechnung oder andere mathematische Berechnungen (was mit den JavaScript-Datentypen nicht immer akkurate Ergebnisse liefert), so können Sie ein 1 × 1 Pixel großes Applet verwenden. Das Applet selbst soll keine Aktivität zeigen und fällt aufgrund seiner Größe nicht sonderlich auf, aber Sie können die öffentlichen Funktionen aufrufen und die Ergebnisse verwenden.

 

24.3.1 Exemplarische Java-Objekte 

Ein mögliches Beispiel ist die Java-Variante eines luxuriöseren Arrays, dort Vektor genannt. Die Klasse heißt Vector und wird von JavaScript aus (und übrigens auch von Java) mit java.util.Vector angesprochen.

Mit den folgenden Befehlen wird eine Instanz des Java-Typs Vector erzeugt. Diese Instanz besitzt als Methoden alle als public deklarierten Methoden des Java-Objekts:

if (navigator.javaEnabled()) {

   var v = new java.util.Vector();

}

Dieser Vektor hat im Gegensatz zu einfachen JavaScript-Arrays Funktionen zum einfachen Entfernen und Hinzufügen von Elementen. Zwar gibt es bereits seit JavaScript 1.1 ein paar neue Möglichkeiten für JavaScript-Arrays, mit denen man diese neue Funktionalität ebenfalls erreichen kann, aber das ist nicht das Thema dieses Kapitels.

Ein weiteres interessantes Java-Objekt ist Hashtable. Das ist auch ein Array, aber die Indizes sind nicht numerisch, sondern können auch Zeichenketten sein. Man kann beispielsweise sehr einfach eine Abbildung von Monatsnamen auf Monatszahlen erreichen. JavaScript unterstützt dies zwar auch, jedoch nicht in allen Versionen. (Das übliche Problem: Alte Browser sollten weiterhin unterstützt werden.)

Im folgenden Beispiel könnten sowohl Vector als auch Hashtable verwendet werden. Wir beschränken uns hier aber auf Vector. Stellen Sie sich vor, Sie befinden sich in Las Vegas an einem Blackjack-Tisch. Sie haben ein einzelnes Kartenspiel vor sichund müssen es mischen und an die Spieler verteilen. Außerdem soll bei jedem Spieler angegeben werden, wie viele Punkte er mit seinen Karten erreicht hat. Eine vollständige Implementierung des Spiels ist Ihnen überlassen. J

 

24.3.2 Blackjack 

Zur Vorbereitung in aller Kürze die wichtigsten Blackjack-Regeln:

>

Das Kartenspiel enthält in den vier Farben (Herz, Karo, Pik, Kreuz) die Nummernkarten 2 bis 10 sowie die Bildkarten Bube, Dame, König und das Ass. Insgesamt erhält man so ein Spiel (Deck) aus 52 Karten.

 

>

Das Ziel des Spiels ist es, so nahe wie möglich an 21 Punkte heranzukommen, vor allem näher als die Bank, ohne jedoch die 21 Punkte zu überschreiten (das hat den sofortigen Verlust zur Folge).

 

>

Eine Nummernkarte zählt so viele Punkte, wie auf der Karte stehen. Eine Bildkarte zählt zehn Punkte. Ein As zählt 11 Punkte, außer wenn der Spieler mit seinen Karten über 21 Punkte kommen würde (»überbieten«), dann zählt es einen Punkt. Hat ein Spieler also ein As und eine 7, so hat er 18 Punkte. Zwei Asse zählen als 12 Punkte, denn würden beide Asse mit 11 Punkten zählen, hätte der Spieler 22 Punkte und damit überboten. Analog zählen drei Asse als 13 Punkte.

 

>

Hat der Spieler ein As und eine Karte, die zehn Punkte wert ist (eine Bildkarte oder die Zehn), so hat er einen »Blackjack«.

 

>

Am Anfang des Spiels bekommt jeder Spieler zwei Karten zugeteilt.

 

>

Weitere Regeln, etwa, was die Bank zu tun hat und wie man mehr Karten bekommen kann, sind nicht Thema dieses Buchs.

Die Strategie für die Blackjack-Applikation ist die folgende:

>

In einer Schleife wird ein Array mit allen möglichen Karten gefüllt.

 

>

Die Karten werden gemischt, indem immer ein Element aus dem Array zufällig ausgewählt, einem Spieler zugeteilt und aus dem Array entfernt wird.

 

>

Bei jedem Spieler wird die Punktzahl seiner beiden Karten bestimmt. Diese Punktzahl wurde zuvor für einen schnellen Zugriff in einer Hashtable abgespeichert.

 

24.3.3 Karten initialisieren 

Jede Karte wird als Zeichenkette gespeichert. Hierbei werden die Farbe und die Kartenbezeichnung durch ein Trennzeichen, beispielsweise einen Leerzeichen, voneinander getrennt. Die äußere Schleife geht von 1 bis 13 (die Karten von 2 bis 10, König, Bube, Dame, Ass). Die innere Schleife geht von eins bis vier und umfasst die vier Farben. Die einzelnen Werte werden in einem Java-Vector gespeichert (natürlich nur zu Übungszwecken, denn, wie bereits gesagt wurde, geht das mit minimalem Mehraufwand auch mit reinen JavaScript-Mitteln). Die zugehörige, als public deklarierte Methode zum Einfügen eines Elements in ein Vector-Objekt heißt addElement(). Um noch ein wenig mehr Java zu verwenden, wird das zu übergebende String-Objekt auch als Java-Objekt generiert, obwohl man auch einfach die (JavaScript-)Zeichenkette hätte übergeben können.

function deck() {

   // Hilfsvariablen

   var kartenname = new Array();

   kartenname[0]="Zwei"; kartenname[1]="Drei";

   kartenname[2]="Vier"; kartenname[3]="Fünf";

   kartenname[4]="Sechs"; kartenname[5]="Sieben";

   kartenname[6]="Acht"; kartenname[7]="Neun";

   kartenname[8]="Zehn"; kartenname[9]="Bube";

   kartenname[10]="Dame"; kartenname[11]="König";

   kartenname[12]="Ass";

   var farben = new Array();

   farben[0] = "Herz"; farben[1] = "Karo";

   farben[2] = "Pik"; farben[3] = "Kreuz";

   //Array initialisieren; als Java-Vector!

   var cards = new java.util.Vector();

   for (var i=0; i<13; i++) {

      for (var j=0; j<4; j++) {

         temp = farben[j] + " " + kartenname[i];

         karte = new java.lang.String(temp);

         cards.addElement(karte);

      }

   }

   return cards;

}


 

 

24.3.4 Karten mischen  

Das Mischen gestaltet sich, wie bereits beschrieben, mit einem Vektor relativ einfach. Es wird ein beliebiges Element des Vector-Objekts bestimmt und aus dem Vektor herausgenommen. Parallel dazu wird ein neuer Vektor erzeugt, der die Elemente des »alten« Vektors enthält, nur in einer neuen, zufälligen Reihenfolge.

Um dies zu bewerkstelligen, werden die folgenden Java-Methoden des Vector-Objekts benötigt:

>

size(): Liefert die Anzahl der Elemente im Vektor zurück.

 

>

elementAt(i): Liefert das Element an der Position i im Vektor zurück. (Die Zählung beginnt – wie bei Arrays auch – bei 0.)

 

>

removeElementAt(i): Löscht das Element an der Position i aus dem Vektor.

function mischen(alt) {

   var neu = new java.util.Vector();

   for (var i=alt.size(); i>0; i--) {

      var zufall = Math.floor(Math.random()*i);

      neu.addElement(alt.elementAt(zufall));

      alt.removeElementAt(zufall);

   }

   return neu;

}

Die Kartenverteilung und die Punktberechnung werden an dieser Stelle nicht dargestellt. An dieser Stelle folgt lediglich eine Beispielseite, die ein Kartenblatt mischt und auf dem Bildschirm ausgibt. Hierzu wird die toString()-Methode eines Vector-Objekts verwendet, die die Elemente des Vektors als Zeichenkette ausgibt.

Bilder

Abbildung 24.3     Das gemischte Kartenblatt

<html>

<head>

<title>Karten mischen</title>

<script "text/javascript"><!--

function deck() {

   // Hilfsvariablen

   var kartenname = new Array();

   kartenname[0]="Zwei"; kartenname[1]="Drei";

   kartenname[2]="Vier"; kartenname[3]="Fünf";

   kartenname[4]="Sechs"; kartenname[5]="Sieben";

   kartenname[6]="Acht"; kartenname[7]="Neun";

   kartenname[8]="Zehn"; kartenname[9]="Bube";

   kartenname[10]="Dame"; kartenname[11]="König";

   kartenname[12]="Ass";

   var farben = new Array();

   farben[0] = "Herz"; farben[1] = "Karo";

   farben[2] = "Pik"; farben[3] = "Kreuz";

   //Array initialisieren; als Java-Vector!

   var cards = new java.util.Vector();

   for (var i=0; i<13; i++) {

      for (var j=0; j<4; j++) {

         temp = farben[j]+" "+kartenname[i];

         karte = new java.lang.String(temp);

         cards.addElement(karte);

      }

   }

   return cards;

}

function mischen(alt) {

   var neu = new java.util.Vector();

   for (var i=alt.size(); i>0; i--) {

      var zufall = Math.floor(Math.random()*i);

      neu.addElement(alt.elementAt(zufall));

      alt.removeElementAt(zufall);

   }

   return neu;

}

function verteilen() {

   var c1 = deck();

   var c2 = mischen(c1);

   document.write(c2.toString());

}

 

//--></script>

</head>

<body>

<h3>Karten mischen</h3>

<script "text/javascript"><!--

   if (navigator.javaEnabled()) {

      verteilen();

   }

 

//--></script>

</body>

</html>

Auch wenn man darüber diskutieren kann, ob Java im Web noch eine Relevanz hat: Mit JavaScript ist es sehr einfach, auf Java zuzugreifen, sei es in Form eines Applets oder auch in Form eines Direktzugriffs auf Java-Klassen.

 


Bei Galileo Press ist ein vorzügliches Buch zu diesem Thema erschienen: »Java ist auch eine Insel« von Christian Ullenboom! Das findet man heute kaum noch, da es dem Spieler einen Vorteil gegenüber der Bank bringt.

Das Tutorial ist ein Auszug aus der 7. Auflage des Buches von Christian Wenz:

JavaScript und Ajax - Das umfassende Handbuch
Galileo Computing, 853 Seiten, 8. aktualisierte Auflage

Die Veröffentlichung des Kapitels erfolgt mit freundlicher Genehmigung von Galileo Press.

Mehr Informationen zum aktualisierten Fachbuch für Webentwickler gibt es hier: JavaScript und Ajax
 
Alle Kapitel des Buches:
1 Grundlagen
2 JavaScript-Praxis
3 Professionelles JavaScript
4 Web 2.0 und Ajax
5 Kommunikation
6 Serverseitige Programmierung
7 Sicherheit
8 Praxis
9 Anhang
Bilder


 

DVD-Werbung
Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.

x
×
×