tecnologie lato client: applet © 2005 stefano clemente stefano clemente [email protected]
TRANSCRIPT
Tecnologie lato ClientTecnologie lato ClientAppletApplet
copy 2005 Stefano Clemente
Stefano Clementesclementeeiuniboit
18 Ottobre 2005 Stefano Clemente 2
Riferimenti bibliograficiRiferimenti bibliografici
bull Java Tutorial on-lineminus httpjavasuncomdocsbookstutorialappletindexhtml
bull Downloadable Java Tutorialminus httpjavasuncomdocsbookstutorialdownloadtutorialzip
18 Ottobre 2005 Stefano Clemente 3
IntroduzioneIntroduzionebull Permettono di eseguire del codice Java incluso
nelle pagine webbull Java egrave platform-independent
minusnon crsquoegrave bisogno di sapere quale browser egrave in uso sui client
bull Le pagine web sono piugrave potentibull Si possono fornire programmi agli utenti ma
eseguiti sulle loro macchineminusminor carico per i server
bull devono soltanto trasferire il codice
minusmaggior carico per i client bull devono disporre della potenza di calcolo necessaria per
lrsquoesecuzione dei programmi Java
18 Ottobre 2005 Stefano Clemente 4
IntroduzioneIntroduzionebull Le applet sono soggette ad alcuni limiti percheacute
minus egrave pur sempre codice scaricato da siti remoti
minus devono essere eseguiti su macchine di utenti di qualsiasi tipo
minus egrave indispensabile la sicurezza e la fiducia
minus devono essere applicate alcune restrizioni
minus devono essere eseguite in modo sicuro
bull Lrsquoutente egrave protetto dallrsquoapplet security managerapplet security manager
18 Ottobre 2005 Stefano Clemente 5
IntroduzioneIntroduzionebull Limiti
minus non possono essere utilizzate per ldquospiarerdquo il client ma possono leggere solo alcune informazioni
bull versione di Java utilizzatabull nome e versione del sistema operativobull i caratteri utilizzati come separatori di linea e di filebull il linguaggio e le impostazioni localibull le valute
minus non possono alterare il sistema dellrsquoutenteminus non possono eseguire programmi residenti sul clientminus non possono comunicare con host diversi dal server di origineminus non possono leggerescrivere sul file-system del clientminus le finestre aperte da una applet sono diverse dalle finestre
aperte dalle altre applicazioni
18 Ottobre 2005 Stefano Clemente 6
IntroduzioneIntroduzione
bull Possibilitagrave delle appletminusvisualizzazione di immaginiminusriproduzione di suoniminusricezione di input dallrsquoutente (azioni del
mouse e pressione dei tasti della tastiera)minuslrsquoinput puograve essere inviato al serverminusesecuzione di calcoli complessi
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 2
Riferimenti bibliograficiRiferimenti bibliografici
bull Java Tutorial on-lineminus httpjavasuncomdocsbookstutorialappletindexhtml
bull Downloadable Java Tutorialminus httpjavasuncomdocsbookstutorialdownloadtutorialzip
18 Ottobre 2005 Stefano Clemente 3
IntroduzioneIntroduzionebull Permettono di eseguire del codice Java incluso
nelle pagine webbull Java egrave platform-independent
minusnon crsquoegrave bisogno di sapere quale browser egrave in uso sui client
bull Le pagine web sono piugrave potentibull Si possono fornire programmi agli utenti ma
eseguiti sulle loro macchineminusminor carico per i server
bull devono soltanto trasferire il codice
minusmaggior carico per i client bull devono disporre della potenza di calcolo necessaria per
lrsquoesecuzione dei programmi Java
18 Ottobre 2005 Stefano Clemente 4
IntroduzioneIntroduzionebull Le applet sono soggette ad alcuni limiti percheacute
minus egrave pur sempre codice scaricato da siti remoti
minus devono essere eseguiti su macchine di utenti di qualsiasi tipo
minus egrave indispensabile la sicurezza e la fiducia
minus devono essere applicate alcune restrizioni
minus devono essere eseguite in modo sicuro
bull Lrsquoutente egrave protetto dallrsquoapplet security managerapplet security manager
18 Ottobre 2005 Stefano Clemente 5
IntroduzioneIntroduzionebull Limiti
minus non possono essere utilizzate per ldquospiarerdquo il client ma possono leggere solo alcune informazioni
bull versione di Java utilizzatabull nome e versione del sistema operativobull i caratteri utilizzati come separatori di linea e di filebull il linguaggio e le impostazioni localibull le valute
minus non possono alterare il sistema dellrsquoutenteminus non possono eseguire programmi residenti sul clientminus non possono comunicare con host diversi dal server di origineminus non possono leggerescrivere sul file-system del clientminus le finestre aperte da una applet sono diverse dalle finestre
aperte dalle altre applicazioni
18 Ottobre 2005 Stefano Clemente 6
IntroduzioneIntroduzione
bull Possibilitagrave delle appletminusvisualizzazione di immaginiminusriproduzione di suoniminusricezione di input dallrsquoutente (azioni del
mouse e pressione dei tasti della tastiera)minuslrsquoinput puograve essere inviato al serverminusesecuzione di calcoli complessi
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 3
IntroduzioneIntroduzionebull Permettono di eseguire del codice Java incluso
nelle pagine webbull Java egrave platform-independent
minusnon crsquoegrave bisogno di sapere quale browser egrave in uso sui client
bull Le pagine web sono piugrave potentibull Si possono fornire programmi agli utenti ma
eseguiti sulle loro macchineminusminor carico per i server
bull devono soltanto trasferire il codice
minusmaggior carico per i client bull devono disporre della potenza di calcolo necessaria per
lrsquoesecuzione dei programmi Java
18 Ottobre 2005 Stefano Clemente 4
IntroduzioneIntroduzionebull Le applet sono soggette ad alcuni limiti percheacute
minus egrave pur sempre codice scaricato da siti remoti
minus devono essere eseguiti su macchine di utenti di qualsiasi tipo
minus egrave indispensabile la sicurezza e la fiducia
minus devono essere applicate alcune restrizioni
minus devono essere eseguite in modo sicuro
bull Lrsquoutente egrave protetto dallrsquoapplet security managerapplet security manager
18 Ottobre 2005 Stefano Clemente 5
IntroduzioneIntroduzionebull Limiti
minus non possono essere utilizzate per ldquospiarerdquo il client ma possono leggere solo alcune informazioni
bull versione di Java utilizzatabull nome e versione del sistema operativobull i caratteri utilizzati come separatori di linea e di filebull il linguaggio e le impostazioni localibull le valute
minus non possono alterare il sistema dellrsquoutenteminus non possono eseguire programmi residenti sul clientminus non possono comunicare con host diversi dal server di origineminus non possono leggerescrivere sul file-system del clientminus le finestre aperte da una applet sono diverse dalle finestre
aperte dalle altre applicazioni
18 Ottobre 2005 Stefano Clemente 6
IntroduzioneIntroduzione
bull Possibilitagrave delle appletminusvisualizzazione di immaginiminusriproduzione di suoniminusricezione di input dallrsquoutente (azioni del
mouse e pressione dei tasti della tastiera)minuslrsquoinput puograve essere inviato al serverminusesecuzione di calcoli complessi
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 4
IntroduzioneIntroduzionebull Le applet sono soggette ad alcuni limiti percheacute
minus egrave pur sempre codice scaricato da siti remoti
minus devono essere eseguiti su macchine di utenti di qualsiasi tipo
minus egrave indispensabile la sicurezza e la fiducia
minus devono essere applicate alcune restrizioni
minus devono essere eseguite in modo sicuro
bull Lrsquoutente egrave protetto dallrsquoapplet security managerapplet security manager
18 Ottobre 2005 Stefano Clemente 5
IntroduzioneIntroduzionebull Limiti
minus non possono essere utilizzate per ldquospiarerdquo il client ma possono leggere solo alcune informazioni
bull versione di Java utilizzatabull nome e versione del sistema operativobull i caratteri utilizzati come separatori di linea e di filebull il linguaggio e le impostazioni localibull le valute
minus non possono alterare il sistema dellrsquoutenteminus non possono eseguire programmi residenti sul clientminus non possono comunicare con host diversi dal server di origineminus non possono leggerescrivere sul file-system del clientminus le finestre aperte da una applet sono diverse dalle finestre
aperte dalle altre applicazioni
18 Ottobre 2005 Stefano Clemente 6
IntroduzioneIntroduzione
bull Possibilitagrave delle appletminusvisualizzazione di immaginiminusriproduzione di suoniminusricezione di input dallrsquoutente (azioni del
mouse e pressione dei tasti della tastiera)minuslrsquoinput puograve essere inviato al serverminusesecuzione di calcoli complessi
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 5
IntroduzioneIntroduzionebull Limiti
minus non possono essere utilizzate per ldquospiarerdquo il client ma possono leggere solo alcune informazioni
bull versione di Java utilizzatabull nome e versione del sistema operativobull i caratteri utilizzati come separatori di linea e di filebull il linguaggio e le impostazioni localibull le valute
minus non possono alterare il sistema dellrsquoutenteminus non possono eseguire programmi residenti sul clientminus non possono comunicare con host diversi dal server di origineminus non possono leggerescrivere sul file-system del clientminus le finestre aperte da una applet sono diverse dalle finestre
aperte dalle altre applicazioni
18 Ottobre 2005 Stefano Clemente 6
IntroduzioneIntroduzione
bull Possibilitagrave delle appletminusvisualizzazione di immaginiminusriproduzione di suoniminusricezione di input dallrsquoutente (azioni del
mouse e pressione dei tasti della tastiera)minuslrsquoinput puograve essere inviato al serverminusesecuzione di calcoli complessi
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 6
IntroduzioneIntroduzione
bull Possibilitagrave delle appletminusvisualizzazione di immaginiminusriproduzione di suoniminusricezione di input dallrsquoutente (azioni del
mouse e pressione dei tasti della tastiera)minuslrsquoinput puograve essere inviato al serverminusesecuzione di calcoli complessi
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 7
StrumentiStrumentibull Il programmatore che crea la applet
minusscrive con un editor il programmaminuslo compila utilizzando il Software Development Kit ndash
SDK (javacjavac)minuscrea con un editor la pagina web sorgente
bull Per eseguire la appletminusbisogna disporre di Java Runtime Environment (JRE)minussi scarica la pagina web e il codice dellrsquoappletminussi visualizza la pagina con un browser o con appletviewerappletviewer
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 8
HTML il tag appletHTML il tag appletltAPPLETgtltAPPLETgt
AttributiCODE=ltfile_java_classgt CODEBASE=ltURI_base_dei_file_classgt WIDTH=ltlarghezza_appletgt HEIGHT=ltaltezza_appletgt ARCHIVE=ltfile_archivigt
bull In HTML 40 egrave sconsigliato lrsquouso del tag applet che si intende sostituire con il piugrave generico tag ltobjectgtltobjectgt
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 9
AppletApplet
bull Ogni applet viene implementata mediante la creazione di una sottoclasse della classe AppletApplet
bull La gerarchia dellrsquoereditarietagrave della classe Applet egrave mostrata nella figura accanto
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 10
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoappletbull Caricamento dellrsquoapplet
minus viene creata unrsquoistanza della classe che controlla lrsquoapplet (sottoclasse di AppletApplet)
minus lrsquoapplet si inizializzaminus lrsquoapplet comincia la sua esecuzione
bull Quando si abbandona la pagina lrsquoapplet si arresta e quando si ritorna nella pagina lrsquoapplet si riavviaminus anche per riduzione a icona e ripristino della finestra
bull Alcuni browser permettono allrsquoutente di ricaricare lrsquoapplet il che si traduce inminus arresto dellrsquoappletminus pulizia finale ndash lrsquoapplet rilascia le risorse che detieneminus caricamento dellrsquoapplet
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 11
Il ciclo di vita dellrsquoappletIl ciclo di vita dellrsquoapplet
bull Uscita dal browserminusarresto dellrsquoappletminuspulizia finale ndash lrsquoapplet rilascia le risorse che detiene
bull Riassumendo gli eventi del ciclo di vita dellrsquoapplet sonominusinizializzazioneminusavviominusarrestominuspulizia finale
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 12
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 13
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 14
Esempio 1Esempio 1
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 15
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1bull Lrsquoapplet Esempio1 egrave una sottoclasse della classe
Applet classbull Ridefinisce quattro metodi della classe Applet
minus init ndash per inizializzare lrsquoapplet ogni volta che viene caricata o ricaricata
minus start ndash per avviare lrsquoesecuzione in seguito al caricamento o a una nuova visita da parte dellrsquoutente
minus stop ndash per arrestare lrsquoesecuzione in seguito a chiusura del browser o abbandono della pagina da parte dellrsquoutente
minus destroy ndash per la pulizia finale in seguito a arresto dellrsquoapplet
bull Non egrave sempre necessario ridefinire i metodiminus es applet che non fanno altro che disegnarsi
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 16
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull Il metodo init dovrebbe essere ridefinito quando lrsquoinizializzazione egrave da eseguire una sola volta e non richiede dei tempi eccessivi
bull Alcuni browser chiamano il metodo init piugrave volte dopo il caricamento dellrsquoapplet
bull Il metodo start dovrebbe essere ridefinito quando lrsquoapplet deve eseguire qualcosa dopo lrsquoinizializzazioneminusIl metodo start puograve
bull eseguire il lavoro dellrsquoapplet (non molto bello)bull avviare dei thread per lrsquoesecuzione del lavoro (meglio)
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 17
Commenti sullrsquoesempio 1Commenti sullrsquoesempio 1
bull La maggior parte delle applet che ridefiniscono il metodo start dovrebbero ridefinire anche il metodo stopminusIl metodo stop sospende lrsquoesecuzione dellrsquoapplet e
quindi non impegna risorse se lrsquoutente non visualizza la pagina (es animazione)
bull La maggior parte delle applet non hanno bisogno di ridefinire il metodo destroy percheacute il metodo stop fa solitamente giagrave tutto il necessario Viene ridefinito per rilasciare risorse aggiuntive
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 18
Metodi di DrawingMetodi di Drawingbull Nellrsquoesempio 1 la ridefinizione del metodo
paint definisce il modo in cui lrsquoapplet visualizza dei messaggi
bull I metodi che unrsquoapplet puograve ridefinire per la visualizzazione sonominuspaint ndash metodo principale per la visualizzazione di
informazioniminusupdate ndash utilizzato in combinazione con paint per
migliorare le prestazioni
bull Sono ereditati dalla classe Applet che li eredita a sua volta dalla classe Component dellrsquoAbstract Window Toolkit (AWT)
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 19
EventiEventi
bull Dalla classe Component egrave ereditato anche un insieme di metodi per la gestione degli eventiminusactionminusmouseDownminushandleEvent ndash ldquoqualsiasi eventordquo
bull Per gestire un evento bisogna ridefinire il relativo metodo nellrsquoapplet
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 20
Esempio 2Esempio 2
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 21
Metodi per aggiunta componenti Metodi per aggiunta componenti interfaccia utenteinterfaccia utentebull AWT fornisce anche le seguenti componenti per
lrsquointerfaccia utenteminus Bottoni (javaawtButton) minus Single-line text field (javaawtTextField) minus Checkbox (javaawtCheckbox) minus Larger text display e aree di editing (javaawtTextArea) minus Etichette (javaawtLabel) minus Liste (javaawtList) minus Liste pop-up (javaawtChoice) minus Slider e scrollbar (javaawtScrollbar) minus Aree di disegno (javaawtCanvas) minus Menu (javaawtMenu javaawtMenuItem
javaawtCheckboxMenuItem) minus Contenitori (javaawtPanel javaawtWindow e sottoclassi)
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 22
Metodi per lrsquouso delle componenti Interfaccia Utente
bull addadd minusAggiunge la componente
bull removeremove minusRimuove la componente
bull setLayoutsetLayout minusPredispone il layout manager
Metodi per aggiunta Metodi per aggiunta componenti interfaccia utentecomponenti interfaccia utente
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 23
Esempio 3Esempio 3
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 24
I vantaggi della API AppletI vantaggi della API Appletbull La API applet permette di trarre vantaggi dalla
relazione tra applet e browserbull La API egrave fornita dal package javaapplet bull Grazie a API le applet possono
minusricevere dal browser la notifica su inizializzazione esecuzione arresto ecc
minuscaricare file di dati relativi alla URL dellrsquoapplet o alla pagina nella quale viene eseguita
minusvisualizzare delle brevi stringhe di statominusfar visualizzare un documento al browserminustrovare altre applet eseguite nella stessa paginaminusriprodurre suoniminusricevere parametri specificati nel tag ltappletgtltappletgt
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 25
API applet cercare e caricare i API applet cercare e caricare i filefilebull I file che unrsquoapplet ha bisogno di caricare sono indicati con una URL relativa
normalmente la applet usaminus code-base ndash metodo getCodeBaseminus document-base ndash metodo getDocumentBase
bull A meno di specifiche diverse indicate nel tag ltappletgt la code-base coincide con la document-base
bull I dati di cui unrsquoapplet ha sempre bisogno sono solitamente relativi alla code-basebull I dati che lrsquoutente che usa lrsquoapplet specifica (per mezzo di parametri) sono
solitamente relativi alla document-basebull La classe Applet definisce dei modi convenienti per il caricamento di suoni e
immagini relativamente a una URL base per esempio se una applet egrave configurata con una delle seguenti strutture di directory
per caricare lrsquoimmagine agif che si trova nella directory imgDir si puograve scrivereImage image = getImage(getCodeBase() imgDiragif)
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 26
API applet visualizzazioni di API applet visualizzazioni di brevi stringhe di statobrevi stringhe di statobull Sia i browser che altri visualizzatori di applet (es programma
appletviewer) consentono la visualizzazione di brevi stringhe di stato nella apposita barra di stato in fondo alla finestraminus Nei browser le applet e il browser condividono la stessa barra
bull Questa possibilitagrave non dovrebbe essere utilizzata per visualizzare informazioni criticheminus se le informazioni devono essere fornite a molti utenti dovrebbero
essere visualizzate nellrsquoarea dellrsquoappletminus se le informazioni interessano pochi utenti dovrebbero essere
visualizzate nello standard-outputbull Unix = shellbull X-windows = finestra terminalbull Browser = Console Java
bull La riga di stato puograve essere sovrascritta in qualsiasi momento da altre applet o dal browser
bull Il metodo relativo egrave showStatusshowStatusminus showStatus(MyApplet Loading image file + file) showStatus(MyApplet Loading image file + file)
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 27
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserbull Unrsquoapplet puograve visualizzare del testo HTMLbull Attraverso il metodo showDocumentshowDocument di
AppletContext lrsquoapplet dice al browser quale URL visualizzare e in quale finestra minusnon funziona con appletviewer
bull showDocumentshowDocument ha due formeminuspublic void showDocument(javanetURL public void showDocument(javanetURL urlurl))
bull dice semplicemente al browser di visualizzare il documento allrsquoURL specificata
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 28
API applet visualizzazioni di API applet visualizzazioni di documenti allrsquointerno del documenti allrsquointerno del browserbrowserminus public void showDocument(javanetURL public void showDocument(javanetURL urlurl
String String targetWindowtargetWindow)) bull aggiunge la finestra nella quale il documento deve essere
visualizzato il secondo argomento puograve assumere i valoriminus _blank_blank
bull nuova finestra senza nome minus windowNamewindowName
bull finestra dal nome ldquowindowNamerdquo ndash se non esiste viene creataminus _self_self
bull stessa finestra o frame che contiene lrsquoappletminus _parent_parent
bull Stessa finestra che contiene lrsquoapplet ma nel parent frame ndash se non esiste il parent frame egrave uguale a ldquo_selfrdquo
minus _top_top bull Stessa finestra che contiene lrsquoapplet ma nel frame principale ndash
se non esiste il frame principale egrave uguale a ldquo_selfrdquo
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 29
API applet invio di messaggi ad API applet invio di messaggi ad altre appletaltre appletbull Le applet possono parlare con altre applet entro i
seguenti limitiminus la maggior parte dei browser richiedono che
bull le applet provengano dallo stesso serverbull abbiano la stessa code-base
bull La API richiede inoltre che le applet siano in esecuzione minus sulla stessa paginaminus sulla stessa finestra del browser
bull Una applet puograve individuare unrsquoaltra appletminus per nome ndash metodo getApplet di AppletContextminus cercando tutte le applet della pagina ndash metodo getApplets di
AppletContext in entrambe i casi vengono restituiti uno o piugrave oggetti Applet sui quali lrsquoapplet invocante puograve richiamare dei metodi
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 30
Esempio 4 Applet ReceiverEsempio 4 Applet Receiver
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 31
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 32
Esempio 1 Applet SenderEsempio 1 Applet Sender
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 33
Esempio 4 Applet SenderEsempio 4 Applet Sender
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 34
Esempio 4 HTMLEsempio 4 HTML
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 35
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 36
Esempio 5 getAppletsEsempio 5 getApplets
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 37
Esempio 5 HTMLEsempio 5 HTML
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 38
API applet Riproduzione di API applet Riproduzione di suonisuonibull Il supporto per i suoni egrave fornito dalla classe Applet egrave
dallrsquointerfaccio AudioClip del package JavaAppletbull Egrave supportato un solo formato ndash 8 bit microlaw 8000 Hz
one-channel file auau di Sunbull I metodi do Applet relativi ai suoni sono
minus getAudioClip(URL)getAudioClip(URL) getAudioClip(URL String)getAudioClip(URL String)bull restituiscono un oggetto che implementa lrsquointerfaccia AudioClip
minus play(URL)play(URL) play(URL String)play(URL String)bull Eseguono lrsquoAudioClip relativo alla URL specificata
bull La forma a due parametri prende una URL di base (restituita da getDocumentBasegetDocumentBase o da getCodeBasegetCodeBase) e lrsquoURL del file sonoro relativa alla base Egrave consigliato utilizzareminus la code-base per i suoni distribuiti con lrsquoappletminus la document-base per i suoni specificati dallrsquoutente
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 39
API applet Riproduzione di API applet Riproduzione di suonisuonibull I metodi dellrsquointerfaccia AudioClip sono
minusplay bull riproduce il suono una sola volta
minusloop bull ripete continuamente il suono
minusstop bull arresta la riproduzione del suono sia con loop
che con play
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 40
Il tag ltappletgt i parametriIl tag ltappletgt i parametribull Finora abbiamo visto la forma piugrave semplice
ltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt ltAPPLETgtgt ltAPPLETgt
bull Alcune applet permettono allrsquoutente di personalizzare la loro configurazione attraverso lrsquoimmissione di parametri minus I parametri non sono altro che tag da inserire allrsquointerno del
tag applet secondo la sintassi seguenteltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass WIDTH=class WIDTH=anIntanInt HEIGHT=HEIGHT=anIntanIntgt gt ltPARAM NAME=ltPARAM NAME=parameter1Nameparameter1Name VALUE= VALUE=aValueaValuegt gt ltPARAM NAME=ltPARAM NAME=parameter2Nameparameter2Name VALUE=VALUE=anotherValueanotherValuegtgtltAPPLETgtltAPPLETgt
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 41
Il tag ltappletgt i parametriIl tag ltappletgt i parametri
bull Per leggere i parametri specificati dallrsquoutente le applet usano il metodopublic String getParameter(String name)public String getParameter(String name)getParameter restituisce sempre stringhe per cui lrsquoapplet deve provvedere alla conversione in altri tipi se necessario (es IntegerparseInt) minusSe necessario bisogna definire nellrsquoapplet dei valori
di default per i parametri minusgetParameter puograve essere utilizzata anche per
recuperare i valori degli attributi del tag appletbull CODE WIDTH HEIGHThellip
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 42
Il tag ltappletgt codice HTML e Il tag ltappletgt codice HTML e testo alternativotesto alternativobull ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160ltAPPLET CODE=Animatorclass WIDTH=460 HEIGHT=160
ALT=ldquoNon riesco ad eseguire lrsquoappletgtALT=ldquoNon riesco ad eseguire lrsquoappletgtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtltPARAM NAME=ldquordquogtIl browser non conosce il tag applet ltAPPLETgtIl browser non conosce il tag applet ltAPPLETgt
bull La stringa ldquoIl browser non conosce il tag appletrdquo nel tag precedente viene visualizzata nel caso in cui il browser sul quale viene richiamata la pagina non riconosca il tag ltappletgt Questo tipo di stringaminus egrave detto codice HTML alternativominus deve essere inserita tra i tag ltappletgt e ltappletgt e comunque
dopo i tag ltparamgt bull Se il browser egrave in grado di eseguire Java il codice HTML
alternativo egrave ignorato In questo caso puograve essere definito del testo alternativo attraverso attributo ALT del tag applet (nellrsquoesempio la stringa ldquoNon riesco a eseguire lrsquoappletrdquo)minus Lrsquouso dellrsquoattributo ALT egrave per segnalare allrsquoutente che il browser
sebbene abilitato allrsquoesecuzione di codice Java non egrave riuscito a eseguire lrsquoapplet
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 43
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull I browser assumono per default che il codice java
dellrsquoapplet sia nella stessa directory (URL base) del documento HTML in cui lrsquoapplet egrave richiamata
bull Spesso perograve il codice Java egrave in altre directory del server
bull In questi casi lrsquoattributo CODEBASE dice al browser in quale directory recuperare i file dellrsquoappletltAPPLET CODE=ltAPPLET CODE=AppletSubclassAppletSubclassclass class CODEBASE=CODEBASE=aURLaURL WIDTH= WIDTH=anIntanInt HEIGHT= HEIGHT=anIntanIntgt gt ltAPPLETgtltAPPLETgt
bull Se aURL egrave una URLminus relativa allora va intesa relativa alla document-base cioegrave alla
directory della pagina HTMLminus assoluta allora lrsquoapplet puograve essere scaricata da una qualsiasi
directory anche su un altro server
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 44
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull ltAPPLET CODE=Simpleclass ltAPPLET CODE=Simpleclass CODEBASE=example WIDTH=500 CODEBASE=example WIDTH=500 HEIGHT=20gt ltAPPLETgt HEIGHT=20gt ltAPPLETgt
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 45
Il tag ltappletgt la directory Il tag ltappletgt la directory dellrsquoappletdellrsquoappletbull In questo caso lrsquoURL egrave assoluta e puograve
indicare anche una directory su un altro server
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 46
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull Se unrsquoapplet egrave composta da piugrave file potrebbe
essere conveniente raggruppare tutti questi in un unico file archivio
bull Occorre valutareminusla dimensione dellrsquoappletminusle performanceminuslrsquoambiente che il generico utente potrebbe aver
bull Il poter disporre di file archivio porta alla riduzione dei tempi del download (minori connessioni HTTP)
bull Si possono ottenere migliori prestazioni nel download comprimendo lrsquoarchivio
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 47
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletbull La specifica di file archivio produce il seguente
comportamento del browserminus il browser cerca prima di tutto i file archivio nella stessa
directory dellrsquoappletminus successivamente cerca la classe applet allrsquointerno dei file
archiviominus se non lo trova prova allora a caricarlo come se nessun
archivio fosse stato specificato
bull Il formato standard per gli archivi Java egrave JAR introdotto in JDK 11 ed egrave basato sul formato ZIP
bull Gli archivi sono specificati attraverso lrsquoattributo ARCHIVE del tag applet archivi multipli sono specificati separando i nomi degli stessi con virgole
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-
18 Ottobre 2005 Stefano Clemente 48
Il tag ltappletgt raggruppare in Il tag ltappletgt raggruppare in un unico file i file dellrsquoappletun unico file i file dellrsquoappletltAPPLET CODE=AppletSubclassclassldquoltAPPLET CODE=AppletSubclassclassldquoARCHIVE=file1 file2 WIDTH=anIntARCHIVE=file1 file2 WIDTH=anIntHEIGHT=anIntgt ltAPPLETgt HEIGHT=anIntgt ltAPPLETgt
bull Per creare un archivio JAR che includa le versioni compresse di tutti i file class e gif contenuti nella current directory
jar cvf filezip class gifjar cvf filezip class gif
bull Per creare un archivio Jar per le classi nel package commycompanymyproject jar cvf filezip jar cvf filezip commycompanymyprojectclass gifcommycompanymyprojectclass gif
- Slide 1
- Slide 2
- Slide 3
- Slide 4
- Slide 5
- Slide 6
- Slide 7
- Slide 8
- Slide 9
- Slide 10
- Slide 11
- Slide 12
- Slide 13
- Slide 14
- Slide 15
- Slide 16
- Slide 17
- Slide 18
- Slide 19
- Slide 20
- Slide 21
- Slide 22
- Slide 23
- Slide 24
- Slide 25
- Slide 26
- Slide 27
- Slide 28
- Slide 29
- Slide 30
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- Slide 35
- Slide 36
- Slide 37
- Slide 38
- Slide 39
- Slide 40
- Slide 41
- Slide 42
- Slide 43
- Slide 44
- Slide 45
- Slide 46
- Slide 47
- Slide 48
-