Mathematikorientierte Computernutzung, Sommersemester 2009
Java: Ein Hello-World Applet
M. Roczen
Wir geben eine neue Anwendung für die zuvor geschaffene Klasse Polynom, die mit einer geringfügigen
Änderung übernommen wird.
Applets sind kleine Java-Programme, die in Web-Browsern laufen. Sie werden mit
speziellen HTML-Befehlen in Web-Seiten eingebunden und auf dem Rechner
des Nutzers ausgeführt. Im Quelltext dieser Seite können Sie
eine Möglichkeit finden, wie das funktioniert (suchen Sie nach dem Tag <applet>).
Unser Applet hat den Namen TestApplet.class und entsteht durch Kompilieren der nachfolgenden Datei TestApplet.java.
Damit es funktioniert, sollte es vom Webserver im selben Verzeichnis gefunden werden
wie vorliegende Seite. Darüber hinaus wird von TestApplet die Klasse Polynom aufgerufen,
auch Polynom.class sollte sich daher in dem Verzeichnis befinden.
Etwas müssen wir noch beachten: Damit der Browser auf die Klasse Polynom
zugreifen kann, ist sie als public zu deklarieren. Der Quelltext enthält
also dieses Schlüsselwort vor der Klassendeklaration:
//Polynom.java
public class Polynom {
usw. Nach der Änderung ist Polynom.java erneut zu kompilieren.
Wir geben nun den Quelltext für das angekündigte Applet an. Er beginnt mit zwei Import-Anweisungen, durch die dann die Pakete
applet und
awt (Advanced Window Toolkit) zur Verfügung stehen. Wir werden einige naheliegende
Funktionen verwenden, die auf ein Graphik-Objekt angewendet werden (hier mit gr bezeichnet). Wesentlich ist, dass es
keine main-Anweisung gibt: Der Browser "weiß schon,
was er mit der Datei TestApplet.class zu tun hat".
/*
TestApplet.java
Das ist eine Art "hello world"-Programm für ein Applet.
*/
import java.applet.*;
import java.awt.*;
public class TestApplet extends Applet {
public void paint( Graphics gr ) {
setBackground(Color.blue);
gr.drawRoundRect(50,50,500,300,65,65);
gr.fillRoundRect(50,50,500,300,65,65);
gr.setColor(Color.white);
Font fnt = new Font ( "default" , Font.PLAIN, 16 );
gr.setFont( fnt );
int[] a = new int[3]; int[] b = new int[2];
for (int i=0; i < 3; i++ ) { a[i] = (int)Math.round(2+7*Math.random()); }
for (int i=0; i < 2; i++ ) { b[i] = (int)Math.round(2+7*Math.random()); }
Polynom f = new Polynom (a); Polynom g = new Polynom (b);
Polynom h = f.multiply(g);
char hochzwei=178; char hochdrei = 179;
String s= "( "+f.Coeffs[0]+"+"+f.Coeffs[1]+"X+"+f.Coeffs[2]+"X"+hochzwei+" ) ( ";
s+=g.Coeffs[0]+"+"+g.Coeffs[1]+"X ) = ";
s+=h.Coeffs[0]+"+"+h.Coeffs[1]+"X+"+h.Coeffs[2]+"X"+hochzwei+"+"+h.Coeffs[3]+"X"+hochdrei;
gr.drawString( "Es werden zwei Zufallspolynome gewählt und mit-" , 100, 120 );
gr.drawString( "einander multipliziert. Bei jedem \"Besuch\" sehen" , 100, 150 );
gr.drawString( "wir neue Werte." , 100, 180 );
gr.drawString( "Lassen wir das Applet für uns rechnen! " , 100, 230 );
gr.drawString( s, 100, 275 );
}}
Anmerkungen
-
Wir haben hier nur einen ersten, kleinen Schritt in Richtung der Programmierung von Applets gemacht.
Die mächtigen grafischen Funktionen der verwendeten Klassen konnten dabei nur angedeutet werden.
-
Sie können sich im Tutorial von Sun
über theoretische Aspekte informieren und z.B. beim
Open Directory Project zahlreiche Beispiele finden.
-
Wer Lust hat, kann sich nachfolgend eine Variante des Applets anschauen,
in der noch ein "Knopf" gesetzt ist. Auf Angabe eines Quelltexts wird verzichtet.
Marko Roczen, 14.7.2009