s.i.s.s.i.s. catania 2002/03 le applet java prof. d. cantone amuso raffaele
TRANSCRIPT
![Page 1: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/1.jpg)
S.I.S.S.I.S. Catania 2002/03
LE APPLETJAVA
Prof. D. Cantone
Amuso Raffaele
![Page 2: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/2.jpg)
Prerequisiti:
Conoscenze delle interfacce grafiche in Java;
Conoscenze di base del linguaggio Java;
Generalità sulle immagini.
![Page 3: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/3.jpg)
Obiettivi:
Operativi: - Saper passare i parametri ad un
applet;- Saper costruire un applet con elementi
grafici ed interfacce utente.
Cognitivi:- Conoscere gli elementi fondamentali di
un’applicazione web oriented;- Conoscere le possibili interazioni
dell’utente con un’applicazione web;
![Page 4: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/4.jpg)
Metodologie:
Esercitazioni pratiche;
Lezione frontale;
Piccoli progetti.
![Page 5: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/5.jpg)
Strumenti:
Appunti dell’insegnante;
Libro di testo;
Calcolatore (JDK e IE).
![Page 6: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/6.jpg)
Verifica/Valutazione:
Test pratico in laboratorio.
Test V/F;
![Page 7: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/7.jpg)
Tempi:
3 settimane (totale 18 ore).
Teoria6 ore
Laboratorio6 ore
Verifica3 ore
Approf./Recupero3 ore
![Page 8: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/8.jpg)
Contenuti:
Introduzione alle Applet;HTML e Applet;
La classe Applet;L’appletwiever ed i browser.
![Page 9: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/9.jpg)
Contenuti:
Le classi Canvas e Graphics;I metodi grafici;
Le immagini e le Applet;L’awt e le Applet;
I thread e le Applet;Le Midlet (cenni).
![Page 10: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/10.jpg)
Cosa sono le Applet:
Esse possono essere eseguite da un qualunque web browser compatibile
con java;
Le Applet sono applicativi web oriented scritti in linguaggio Java;
Vengono usate soprattutto per applicazioni grafiche e interattive.
![Page 11: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/11.jpg)
Perché le Applet:
In origine le pagine web erano spoglie e povere di grafica;
Non era possibile creare degli applicativi direttamente nelle pagine
web;
Tramite le Applet è stato possibile sia aumentare la qualità grafica del web
che creare piccoli applicativi all’interno delle pagine.
![Page 12: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/12.jpg)
Come funzionano:
javac file.javaBytecode
Browser con Java W.M.
file.html
![Page 13: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/13.jpg)
Sicurezza:
Le Applet risultano sicure poiché, a differenza delle applicazioni, esse hanno alcune importanti restrizioni;
Un applet non può compiere le seguenti operazioni:
> Leggere e scrivere file locali;> Aprire una connessione con un server diverso da quello che la ospita;> Lanciare altre applicazioni sulla macchina locale;> Invocare il metodo System.exit();> Accedere alle proprietà del sistema.
![Page 14: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/14.jpg)
HTML e Applet:
In un file HTML èpossibile richiamare un file in bytecode (.class) contenente
un’ applet;
Il TAG <APPLET> ci consente di inserire all’interno della nostra pagina
HTML un’applet java.
![Page 15: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/15.jpg)
HTML e Applet:
I parametri del TAG<APPLET> sono:
CODE (nome del file .class)CODEBASE (path della directory di lavoro)HEIGHT e WIDTH (dimensioni dell’applet)
All’interno del TAG <APPLET> è inoltre possibile passare i parametri
relativi all’applet.
![Page 16: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/16.jpg)
HTML e Applet:
ESEMPIO:<HTML><BODY>
<APPLET CODE=“file.class” CODEBASE=“.”> <PARAM name=p1 value=0> <PARAM name=p2 value=2> <PARAM name=p3 value=“pippo”></APPLET>
</BODY></HTML>
![Page 17: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/17.jpg)
La classe Applet:
Le applet vengono create estendendo la classe predefinita Applet;
Osservando la gerarchia delle classi si vede che la classe applet è una
sottoclasse della classe Panel e ne eredita tutte le proprietà
(componenti).
+--java.awt.Panel | +--java.applet.Applet
![Page 18: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/18.jpg)
La classe Applet:
Diversamente dalle applicazioni java non occorre creare un frame, poiché
esso è fornito direttamente dal browser che esegue l’applet;
Per creare un’applet bisogna importare il package:
“java.applet.*”esso infatti rende visibile la classe Applet all’interno del programma.
![Page 19: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/19.jpg)
La classe Applet:
La struttura generale di un’applet è la seguente:
import java.applet.*;
public class <nome dell’applet> extends Applet
{ // attributi dell’applet // metodi dell’applet }
![Page 20: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/20.jpg)
I metodi delle Applet:
I medoti introdotti dalla classeapplet sono:
public void init();
public void start();
public void run();
public void stop();
public void destroy();
Essi sono richiamati dal browser o dall’appletviewer.
Deve essere ridefinitose l’applet implementa l’interfaccia “runnable”.
![Page 21: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/21.jpg)
I metodi delle Applet:
Schema di funzionamento di un’applet:
INIT
RUN
START
STOP
DESTROY
![Page 22: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/22.jpg)
I metodi delle Applet:
La struttura di un applet java sarà quindi la seguente:
import java.applet.*;
public class <nome dell’applet> extends Applet
{ public void init() { // Inizializzazione } public void start() { // Parte l’applet } public void run() { // Corpo principale dell’applet } public void stop() { // L’applet si ferma } public void destroy() { // L’applet viene chiusa } }
![Page 23: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/23.jpg)
Canvas e Graphics:
Il browser nel quale viene lanciata l’applet crea un frame in automatico.
Ad un frame è possibile aggiungere pannelli e quindi componenti (bottoni,
menù eccetera).
Nel pannello dell’applet è inserito automaticamente un oggetto Canvas
Un Canvas è una “tela” dove è possibile disegnare.
![Page 24: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/24.jpg)
Canvas e Graphics:
Per disegnare nel canvas bisogna ridefinire il metodo paint.
Dentro il metodo paint è possibile disegnare tramite i metodi della
classe Graphics.
Finestra dell’applet Canvas( contiene il metodo paint )
![Page 25: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/25.jpg)
Canvas e Graphics:
Per ottenere le dimensioni del canvas (quindi dell’applet) basta richiamare il
metodo getSize().Tale metodo torna i seguenti interi:
int w = getSize().width; (torna la larghezza)int h = getSize().height; (torna l’altezza)
(0,0)
(w-1,h-1)
![Page 26: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/26.jpg)
Il metodo paint:
La finestra dell’applet fornita dal browser è una matrice di pixel wxh, dove andremo a scrivere tramite il metodo Paint. Tale metodo viene
richiamato automaticamente.import java.applet.*;import java.awt.*;
public class <nome della classe> extends Applet
{ … … public void paint(Graphics g) { // Ciò che verrà visualizzato nell’applet // Va inserito qui } }
![Page 27: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/27.jpg)
Il metodo paint:
Vi sono numerosi metodi per scrivere in tale matrice.
Uno dei primi metodi che si usa è drawString:
Graphics.drawString(String s,int x,int y);
drawString è usato per scrivere del testo nello schermo dell’applet alle
coordinate (in pixel) specificate.
![Page 28: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/28.jpg)
La prima Applet:
Applet che stampa unastringa a video:
import java.applet.*;import java.awt.*;
public class Hello extends Applet
{ int X,Y; String S;
public void init() { S = new String("Ciao a tutti!"); X=20; Y=20; }
public void paint(Graphics g) { g.drawString(S,X,Y); }
}
![Page 29: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/29.jpg)
La prima Applet:
File HTML che richiama l’applet:<html>
<applet code="Hello.class" width=320 height=200></applet>
</html>
Basta richiamare il file tramite un browser o con l’appletviewer.
C:>appletviewer Hello.html
![Page 30: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/30.jpg)
La classe Graphics:
I metodi della classe Graphics (da richiamare dentro paint():
Graphics.setColor(Color c);
Graphics.drawString(String s,int x,int y);
Graphics.fillRect(int x1, int y1, int x2, int y2);
Graphics.fillOval(int cx, int cy, int dx, int dy);
Graphics.drawRect(int x1, int y1, int x2, int y2);
Graphics.drawOval(int cx, int cy, int dx, int dy);
Graphics.drawLine(int x1, int y1, int x2, int y2);
Graphics.drawImage(Image i, int x,int y, null);
Graphics.fillArc(int x, int y, int dx, int dy, int startG, int arcG);
![Page 31: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/31.jpg)
I colori:
La gestione dei colori in java è affidata alla classe Color.
Esiste una lista di colori predefiniti:Color.black;Color.white;Color.red;Color.green;…
Oppure si può istanziare un colore tramite le sue componenti RGB in
questo modo:
Color rosso = new Color(255,0,0);
![Page 32: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/32.jpg)
Passaggio di parametri:
E’ possibile passare dei parametri all’applet dal file HTML (tag PARAM)Ogni parametro ha un nome ed un
valore;
L’applet legge i parametri tramite il metodo getParameter().
![Page 33: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/33.jpg)
Passaggio di parametri:
Applet che stampa unastringa passata come paramero:
import java.applet.*;import java.awt.*;
public class Hello extends Applet
{ int X,Y; String S;
public void init() { S =getParameter("text"); X=20; Y=20; }
public void paint(Graphics g) { g.drawString(S,X,Y); }
}
![Page 34: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/34.jpg)
Passaggio di parametri:
File HTML che richiama l’applet (con parametri):
<html>
<applet code="Hello.class" width=320 height=200>
<PARAM name=“text” value=“Ciao a tutti!”>
</applet>
</html>
I parametri vengono letti tutti come stringhe, bisogna quindi operare le opportune conversioni nel leggere
parametri numerici.
![Page 35: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/35.jpg)
I thread:
I thread ci consentono di sfruttare le potenzialità multitasking del S.O.;
Ha senso usare i metodi star(), run() e stop() solo quando un applet e implementata come Runnable;
In questo caso l’applet viene vista come un processo del S.O. che può avere una priorità, essere fermato,
fatto ripartire o trovarsi nellostato di run.
![Page 36: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/36.jpg)
I thread:
Per associare una applet ad un thread dobbiamo istanziare la classe
Thread.
I metodi della classe Thread sono:setPriority(P); start();stop();sleep(M);
(P può essere: MAX_ PRIORITY, MIN_ PRIORITY, NORM_ PRIORITY)(M rappresenta i Millisecondi di sleep)
![Page 37: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/37.jpg)
Semplice scrolling:
Esempio dell’uso dei thread.import java.applet.*;import java.awt.*;
public class Hello extends Applet implements Runnable { int X,Y; String S; Thread RUN; public void init() { S = new String("Ciao a tutti!"); X=20; Y=20; } public void start() { RUN=new Thread(this); RUN.setPriority(RUN.MIN_PRIORITY); RUN.start(); } public void run() { while(true) { X++; if(X>320) X=-20; paint(getGraphics()); // Manda a video try{ RUN.sleep(10); } catch(Exception e) {} } } public void stop() { RUN.stop(); }
public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,320,200); g.setColor(Color.black); g.drawString(S,X,Y); } }
![Page 38: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/38.jpg)
Le immagini:
La gestione delle immagini è compito della classe Image.
Un’immagine dovrà essere contenuta in una variabile di tipo Image.
Caricamento di un immagineda un file:
Image SFONDO;…SFONDO=getImage(getDocumentBase(),getParameter("img"));…
Carical’immagine
Directory dilavoro
dell’applet
Prende ilvalore delparametro
![Page 39: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/39.jpg)
Le immagini:
Il file HTML si presenta cosi:<html>
<applet codebase=“.” code="Hello.class“ width=320 height=200> <PARAM name=“img” value=“papero.gif”></applet>
</html>
Nome delparametro
Valore(nomedel file)
Sarà possibile stampare l’immaginea video tramite il metodo drawImage().
![Page 40: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/40.jpg)
Esempi finali:
Esempio di A.W.T.;
Scroll di testo con sfondo;
Effetto grafico natalizio.
![Page 41: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/41.jpg)
Le midlet (cenni):
javac file.javaBytecode
Cellulare con Java W.M.
Si usa Java Micro Edition e il wireless toolkit.java.sun.com
![Page 42: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/42.jpg)
Le midlet (cenni):
La “filosofia” delle midlet è simile a quella delle applet. Una midlet è costruita come estensione della
classe MIDlet:import javax.microedition.lcdui.*;import javax.microedition.midlet.*;
public class <nome midlet> extends MIDlet {
// attributi della midlet
// metodi della midlet
}
Metodi per ildisplay LCD
![Page 43: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele](https://reader034.vdocuments.pub/reader034/viewer/2022051400/5542eb4d497959361e8ba7f1/html5/thumbnails/43.jpg)
Fine!