Unità E4
Applet
Obiettivi
• Saper progettare e realizzare Applet Java all’interno
di pagine HTML
• Comprendere le interazioni tra il browser e l’applet
• Saper inserire un’applet in una pagina web
• Sapere personalizzare il funzionamento di un’applet
servendosi dei parametri
Definizione
• Le applet sono piccole applicazioni che
operano all’interno delle pagine web.
• Quando il browser incontra una pagina
contenente un’applet, individua il file che
contiene il codice e lo scarica.
• Questo non è altro che una classe Java, che
viene eseguita attraverso il Java Runtime
Environment direttamente dal browser
all’interno della pagina web.
Applet e applicazioni
• L’interfaccia grafica presente all’interno di un’applet è
la stessa che si utilizza in una finestra (campi di
testo, liste, combo box, pulsanti e menu).
• Le applet presentano una serie di limitazioni (per
esempio non possono accedere al disco locale)
• Le limitazioni sono state imposte per motivi di
sicurezza; in caso contrario, rappresenterebbero un
strumento per penetrare nel sistema degli utenti e
carpire informazioni riservate.
Implementazione
• Le applet sono implementate in Java
attraverso sottoclassi di JApplet.
• Japplet dispone del metodo
getContentPane() che consente di accedere
al contenitore che rappresenta l’area
dell’applet.
Un esempio
import javax.swing.JApplet;
import javax.swing.JLabel;
public class MiaApplet extends JApplet {
public void init() {
super.init();
getContentPane().add( new JLabel(“Esempio”));
}
}
Ciclo di vita
• In browser e l’applet comunicano tra
loro mediante eventi:
– init() : inializzazione dell’applet
– start() e stop() :inizio e fine dell’esecuzione
dell’applet
– destroy() :la pagina che contiene l’applet è
chiusa
Ciclo di vita – un esempio
import javax.swing.JApplet;
public class Applet2 extends JApplet {
public void destroy() {
System.out.println(“destroy()”);
}
public void init() {
System.out.println(“init()”);
}
public void start() {
System.out.println(“start()”);
}
public void stop() {
System.out.println(“stop()”);
}
}
Inserimento in una pagina html
• Per inserire un’applet in una pagina web è
necessario utilizzare il tag <applet>.
• Una pagina web può contenere anche più di
un’applet.
• I parametri obbligatori del tag <applet > sono:
– code. Specifica il nome della classe
– width. Specifica la larghezza del riquadro definito
per la classe;
– height. Specifica l’altezza del riquadro definito per
la classe.
Esempio – tag <applet>
<html>
<body>
<applet
code=”unitaE4/Applet1.class”
width=”200”
height=”50”>
</applet>
</body>
</html>
Interazione con il browser
• Un’applet ha la possibilità di interagire con il browser,
principalmente per presentare un messaggio nella
sua barra di stato invocando il metodo
showMessage().
• L’applet ha anche la possibilità di caricare nella
finestra una nuova pagina invocando il metodo
showDocument(url)
• Un ulteriore elemento di interazione con il browser è
il metodo getAppletInfo() che è implementato da chi
sviluppa l’applet per fornire informazioni sulla stessa.
Esempio
import java.awt.FlowLayout;
import javax.swing.*;
public class Applet3 extends JApplet {
public void init() {
JButton b = new JButton(“Fai clic”);
b.addActionListener( new AvvisoActionListener(this) );
getContentPane().setLayout(new FlowLayout());
getContentPane().add( b );
}
}
L’ascoltatore …
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
class AvvisoActionListener implements ActionListener {
private final JApplet applet;
AvvisoActionListener(JApplet applet) {
this.applet = applet;
}
public void actionPerformed(ActionEvent e) {
applet.showStatus(“Hai premuto il pulsante!”);
}
}
Parametri
• Le applet supportano i parametri, che sono
passati dalla pagina web attraverso tag di tipo
<PARAM>.
• Ogni elemento di questo tipo ha due attributi:
NAME specifica il nome dell’attributo, mentre
VALUE il suo valore.
Esempio con parametri
public class Applet6 extends JApplet {
public void init() {
getContentPane().setLayout( new FlowLayout() );
getContentPane().add( new JLabel(
getParameter(“TESTO1”)) );
getContentPane().add( new JLabel(
getParameter(“TESTO2”)) );
}}
<html><body>
<applet code=”unitaE4/Applet6.class” width=”200”
height=”50”>
<param name=”TESTO1” value=”Ciao “/>
<param name=”TESTO2” value=”Mondo!”/>
</applet></body></html>
Scarica

applet - Alberto Ferrari