Il Browser non supporta java
JAVA - Applet

APPLET


 


Gli applet sono programmi da inserire in una pagina HTML e quindi scaricabili attraverso Internet ed eseguiti dal browser (il quale deve implementare la JVM - Java Virtual Machine)

Ogni applet e’ implementato dalla creazione di una subclass della classe applet.

Classe applet

    java.lang.object

        java.awt.Component

            java.awt.Container

                java.awt.Panel

                    java.applet.Applet

La classe applet estende la awt.Panel che estende la awt.Container che estende la awt.Compenent da cui eredita la possibilita’ di disegnare e catturare gli eventi

 

 

Comportamenti di un applet, metodi primari.

public class Simple extends Applet {

....

public void init() {....}

public void start() {....}

public void stop() {....}

public void destroy() {....}

public void paint(Graphic g) {....}

......

}

es.

import java.awt.Event

...

public boolean mouseDown(Event event, int x, int y) {

addItem("click");

return true;

... }

Esempio:
//: Simple.java
import java.applet.Applet;
import java.awt.Graphics;
public class Simple extends Applet {
StringBuffer buffer;
public void init() {
buffer = new StringBuffer();
addItem("init(). ");
}
public void start() {
addItem("start(). ");
}
public void stop() {
addItem("stop(). ");
}
public void destroy() {
addItem("destroy().");
}
void addItem(String newWord) {
System.out.println(newWord);
buffer.append(newWord);
repaint();
}
public void paint(Graphics g) {
//Draw a Rectangle around the applet's display area.
g.drawRect(0, 0, size().width - 1, size().height - 1);
//Draw the current string inside the rectangle.
g.drawString(buffer.toString(), 5, 15);
}
}

 

  

 

Aggiungere un applet ad una pagina html

Un applet deve essere aggiunto ad una pagina html usando i tag

<APPLET CODE="NomeApplet.class WIDTH="x" HEIGHT="y">

<param> = usato per passare dati ad un applet

 Attributo: CODEBASE = specifica la directory in cui si trova il bytecode (file.class)

Esempio:
//: PassaString.java
import java.applet.Applet;
import java.awt.*;
public class PassaString extends Applet {
String text;
TextField field;
public void init() {
field = new TextField();
field.setEditable(false);
add(field);
text = getParameter("TEXT");
if(text == null) {
text = "Testo di default, parametro TEXT non passato";
}
}
public void start() {
field.setText(text);
repaint();
}
}

PassaString.htm

<APPLET CODE="PassaString WIDTH="128" HEIGHT="128">

<PARAM NAME="TEXT" VALUE="Testo passato">

</APPLET>

 

 

 

Visualizzare una stringa di testo nella status bar

Con il metodo showStatus si pou’ visualizzare testo nella status bar.

es. per visualizzare i file che vengono caricati, quando sono molti:

showStatut("MyApplet: Loading image file" + file);

 

 

Comunicare con altri programmi

Un applet puo’ comunicare con altri programmi in 3 modi

1) Invocando metodi public degli altri applet nella stessa pagina

2) Tramite le API definite in java.applet per comunicare con il browser

3) Tramite le API definite in java.net per comunicare tramite la rete con altri programmi (che devono risiedere sull’host che contiene l’applet)

1- Un applet puo’ trovare altri applet cercandoli per nome (usando i metodi appletContext, getApplet). Per default un applet non ha un nome, ma gli puo’ essere specificato nel codice html nei seguenti modi:

- Con l’attributo NAME specificato nel tag <applet >

es.

<applet codebase="example/" code="Sender.class" height="xxx" name="buddy">

Specificando il parametro NAME con il tag <param>

es.

<applet .......

<param NAME "name" VALUE="old pal">

per convenzione i nomi di applet sono tutti minuscoli

Un applet puo’ trovare tutti gli altri applet della pagina con il metodo getApplets()

ritorna una enumeration (lista) di tutti gli applet

es.

enumeration e = getAppletContext(),getApplets()

Applet receiver = null

String receiverName = nameField.getText(); //riceve il testo da cercare

receiver = getAppletContext().getApplet(receiverName);

 

2- Quello che il browser visualizza puo’ essere controllato con 2 metodi: appletContext() e showDocument().

es.

public void showDocument(java.net.URL url)

public void showDocument(java.net.URL url, String targetWindow)

 

Restrizioni dell’applet

1