Академический Документы
Профессиональный Документы
Культура Документы
CORSO DI
TECNOLOGIE E APPLICAZIONI WEB
Java Applet
Container
COSTRUIRE UN'APPLET
<HTML><HEAD>
<TITLE> Applet Hello World </TITLE>
</HEAD> <BODY>
Questo e' cio' che produce la mia applet in
un rettangolo 500 x 100 (la scritta e' alle
coordinate 500,100 e si riferisce all'angolo
inferiore sinistro della stringa): <P>
<APPLET CODE="Applet1.class"
WIDTH=500 HEIGHT=100 >
<!--la classe dell’applet e le sue dimensioni-->
</APPLET>
</BODY>
</HTML>
Container c = getContentPane();
// il contenitore che contiene la applet
c.setBackground(SystemColor.window);
c.setLayout(new FlowLayout());
La pagina HTML:
<HTML><HEAD>
<TITLE> Applet 2 </TITLE>
</HEAD> <BODY>
<APPLET CODE="Applet2.class"
WIDTH=300 HEIGHT=100 >
</APPLET>
</BODY>
</HTML>
c.setLayout(new
FlowLayout(FlowLayout.CENTER,10,10));
deleteButton = new JButton("Elimina");
editButton = new JButton("Modifica");
ta = new JTextArea("",12,40);
tf = new JTextField("",40);
c.add(ta); c.add(tf);
c.add(editButton); c.add(deleteButton);
editButton.addActionListener(editor);
deleteButton.addActionListener(editor);
}
}
La pagina HTML:
<HTML><HEAD>
<TITLE> Applet 2 </TITLE>
</HEAD> <BODY>
<APPLET CODE="Applet3.class"
WIDTH=500 HEIGHT=300 >
</APPLET>
</BODY>
</HTML>
ESEMPIO 4
import java.applet.*;
import java.awt.*;
import javax.swing.*;
public class Applet4 extends JApplet {
Font f = new Font("Times", Font.BOLD, 36);
public void paint(Graphics g) {
g.setFont(f);
g.setColor(Color.red);
g.drawString(getParameter("Frase"), 100, 50);
}
}
<HTML><HEAD>
<TITLE> Applet Parametrica </TITLE>
</HEAD> <BODY>
<APPLET CODE="Applet4.class"
WIDTH=500 HEIGHT=100 >
<PARAM NAME="Frase" VALUE="Oh, che bello!">
<!-- NOME e VALORE del parametro -->
</APPLET>
</BODY>
</HTML>
Risultato:
Nota:
• non occorre chiamare il metodo stop(), perché
un'applicazione termina quando il suo frame viene chiuso.
Come applet:
appletviewer Applet5.html
UN APPROCCIO ALTERNATIVO
• Non toccare l'applet già fatta
• Ma sfruttare l'ereditarietà per definire una nuova classe che
– erediti dall'applet che interessa
– contenga il main opportuno
Vantaggi:
• è molto semplice
• non tocca neanche un file dell'applet originale
• si può usare sempre, per qualunque applet
<APPLET OBJECT=”pippo.dat”>
Se la applet di trova in una file in forma serializzata
Un'applet, inoltre:
• può aprire un'altra finestra, ma in essa compare
automaticamente un avviso ("Warning: Applet
window")
Problema:
• in molte situazioni, questi vincoli sono troppo rigidi
• rischierebbero di rendere impossibile la costruzioni di applet
utili.
Un'applet può:
- collegarsi al sito Web di origine – e solo a quello – e
recuperare file e informazioni
- interagire in modo limitato con il browser: caricare
documenti in frame (equivalente al cambiare la
window.location in JavaScript…)
- interagire con la pagina Web in cui è contenuta e con
altre applet in essa Æ due applet su una pagina possono
quindi interagire tra loro e scambiarsi richieste di servizio
Esempio:
dal CodeBase http://sito.com
possiamo connetterci direttamente tramite URLconnection
Vantaggi:
all’interno del Web (dentro al browser) riusciamo a superare i
limiti del protocollo http, per connetterci con interfaccia Web a
qualsiasi tipo di servizio…..
AUDIO:
IMMAGINI:
Container c = getContentPane();
URL codeBase = getCodeBase();
music = getAudioClip(codeBase,"REM.wav");
background = getImage(codeBase,"space.gif");
c.add(playButton);
c.add(stopButton);
c.add(loopButton);
}
AppletContext ac = getAppletContext()
Recupera il contesto della applet stessa
(this.getAppletContext())..
ac.showDocument(URL, _blank)
apre il documento in una nuova finestra
oppure: _parent (nel frame contenitore, _top (nel frame alto),
“nome” nel frame con quel nome
ac.showStatus(“ciao Ciao”);
finestra di stato del browser
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import com.bruceeckel.swing.*;