Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Galileo Computing
ISBN 3-89842-859-1
gp Kapitel 24 Java
  gp 24.1 Allgemeines
    gp 24.1.1 Wie funktioniert Java?
    gp 24.1.2 Kurzeinführung in Java
  gp 24.2 Java und das WWW
    gp 24.2.1 Ein Beispiel-Applet
    gp 24.2.2 HTML-Integration
  gp 24.3 Java ohne Applet
    gp 24.3.1 Exemplarische Java-Objekte
    gp 24.3.2 Blackjack
    gp 24.3.3 Karten initialisieren
    gp 24.3.4 Karten mischen


Galileo Computing

24.2 Java und das WWW  downtop

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.


Galileo Computing

24.2.1 Ein Beispiel-Applet  downtop

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());
   }
}

Galileo Computing

24.2.2 HTML-Integration  toptop

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>

Abbildung
Hier klicken, um das Bild zu Vergrößern

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.

Abbildung
Hier klicken, um das Bild zu Vergrößern

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.

 <<   zurück
  
  Zum Katalog
Zum Katalog: JavaScript und AJAX
JavaScript und AJAX
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: JavaScript und AJAX - Das Video-Training






 JavaScript und AJAX -
 Das Video-Training


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: XHTML, HTML und CSS






 XHTML, HTML und CSS


Zum Katalog: CSS-Praxis






 CSS-Praxis


Zum Katalog: AJAX






 AJAX


Zum Katalog: PHP 5 und MySQL 5






 PHP 5 und MySQL 5


Zum Katalog: TYPO3 4.0






 TYPO3 4.0


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de