S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.

43
S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele

Transcript of S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.

Page 1: S.I.S.S.I.S. Catania 2002/03 LE APPLET JAVA Prof. D. Cantone Amuso Raffaele.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Fine!