Professional Documents
Culture Documents
CorsoJavaME 03 LCDUI DRAFT
CorsoJavaME 03 LCDUI DRAFT
Corso Java ME
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Sviluppo
DRAFT di applicazioni
DRAFT DRAFT DRAFT DRAFT DRAFTper DRAFT
telefoni
DRAFT
DRAFT cellulari
DRAFT DRAFTeDRAFT
computer palmari
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFTStefano Sanna DRAFT DRAFT DRAFT
DRAFT DRAFT
gerdavax@gerdavax.it
7DRAFT
Giugno 2006 DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Versione 1.0.0
1
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT
DRAFT
DRAFT
DRAFT Licenza
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT
DRAFT
DRAFT
DRAFT
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT
Copyright DRAFT DRAFT
e marchi citati DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
2
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT Licenza
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IlDRAFT
materiale
DRAFT prodotto
DRAFT DRAFT per DRAFT
questoDRAFT
corsoDRAFT
(slide,
DRAFT
codice
DRAFT DRAFTsorgente,
DRAFTimmagini originali)
DRAFT DRAFT DRAFT èDRAFT
statoDRAFT
rilasciata
DRAFT DRAFT sotto la licenza
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT Creative
DRAFT Commons
DRAFT DRAFT DRAFT DRAFT
Attribuzione-NonCommerciale-StessaLicenza2.5
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Per leggere una copia della licenza visita il sito
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
web:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– http://creativecommons.org/licenses/publicdomain/
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
o spedisci
DRAFT DRAFT una lettera
DRAFT a Creative
DRAFT Commons,
DRAFT DRAFT 559
DRAFT DRAFT
Nathan
DRAFT DRAFT Abbott Way,
DRAFT Stanford,
DRAFT DRAFT California
DRAFT DRAFT94305,
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
USA
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
3
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT Licenza...
DRAFT DRAFT inDRAFT
praticaDRAFT:-)
DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● E' consentito:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFTleDRAFT
– utilizzare DRAFT
slide per DRAFT DRAFT DRAFT DRAFT
autoistruzione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– utilizzare
DRAFT DRAFTleDRAFT
slide per corsi
DRAFT all'interno
DRAFT di scuole
DRAFT DRAFT DRAFT
pubbliche
DRAFT DRAFT oDRAFT
università
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT le
– stampare DRAFT
slide DRAFT DRAFT
per uso DRAFT DRAFT DRAFT
personale
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– ridistribuire
DRAFT copiaDRAFT
DRAFT DRAFT delle slide
DRAFTsenza
DRAFTmodifiche
DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Non è consentito:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– utilizzare
DRAFT DRAFTleDRAFT
slide per tenere
DRAFT DRAFT unDRAFT
corso DRAFT
a pagamento
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– utilizzare le slide per un qualsiasi scopo
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
nascondendo
DRAFT DRAFT DRAFT le informazioni
DRAFT DRAFTsull'autore
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
– modificare DRAFT delle
il contenuto DRAFTslide
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
4
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFTLimitazione
DRAFT DRAFT DRAFTdi responsabilità
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Malgrado
DRAFT l'impegno
DRAFT e la DRAFT
DRAFT DRAFT buonaDRAFT
volontà a fornire
DRAFT DRAFT
contenuti
DRAFT DRAFTtecnicamente
DRAFT DRAFTcorretti, è possibile
DRAFT DRAFT che ci
DRAFT DRAFT
siano
DRAFT errori. Per questo
DRAFT DRAFT DRAFTmotivo e dataDRAFT
DRAFT DRAFT la gratuità
DRAFT
DRAFTlicenza,
della DRAFT DRAFT DRAFT è
il materiale DRAFT DRAFT
fornito DRAFT
“COSI' DRAFT
COM'E'”,
DRAFT DRAFT
“AS IS”, DRAFT
e non DRAFT DRAFT
si fornisce DRAFT
alcuna DRAFT sulle
garanzia DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
informazioni contenute in questa presentazione né ci
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
siDRAFT
assume alcuna
DRAFT DRAFTresponsabilità da eventuali
DRAFT DRAFT DRAFT danni
DRAFT DRAFT
causati dall'uso
DRAFT DRAFT proprio
DRAFT o improprio
DRAFT DRAFT DRAFTdelle suddette.
DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
5
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT Marchi citatiDRAFT DRAFT DRAFT
DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IDRAFT
marchi dei prodotti
DRAFT citati
DRAFT DRAFT in questa
DRAFT DRAFT presentazione
DRAFT DRAFT
sono
DRAFT di proprietà
DRAFT DRAFTdei rispettivi
DRAFT DRAFT titolari
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Java
DRAFTe DRAFT
tutti i DRAFT
marchiDRAFT
e simboli
DRAFTad essoDRAFT
DRAFT correlati
DRAFT
sono
DRAFT di proprietà
DRAFT DRAFTdiDRAFT
Sun Microsystems
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● L'autore nonDRAFT
DRAFT DRAFT ha alcun
DRAFTlegame
DRAFT con Sun
DRAFT DRAFT DRAFT
Microsystems
DRAFT DRAFT DRAFTe con i produttori
DRAFT dei dispositivi
DRAFT DRAFT DRAFT DRAFTe
dei software
DRAFT citati in
DRAFT DRAFT questa
DRAFT presentazione.
DRAFT Le
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
considerazioni DRAFThanno
esposte DRAFT carattere
DRAFT DRAFT
di DRAFT
DRAFT DRAFT DRAFT
disquisizione DRAFT
tecnica DRAFT
e non DRAFT DRAFT
esprimono DRAFT
giudizi
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
positivi o negativi su nessun prodotto
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
6
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT
DRAFT
DRAFT
DRAFT
DRAFT
DRAFT
Java ME
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT
DRAFT
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT User
DRAFT Interface:
DRAFT DRAFTLCDUI
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
7
Corso Java ME – http://www.gerdavax.it/corsojavame
Interfacce
DRAFT DRAFT grafiche:
DRAFT DRAFT LCDUI
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● MIDP
DRAFT fornisce una libreria
DRAFT DRAFT di componenti
DRAFT DRAFT per
DRAFT DRAFT la
DRAFT
creazione
DRAFT DRAFT di DRAFT
interfacce
DRAFTgrafiche
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Principali
DRAFT DRAFTcaratteristiche:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
– componenti DRAFT DRAFT DRAFTlaDRAFT
platform-independent: GUI siDRAFT
adatta
DRAFT DRAFT DRAFT
al dispositivo DRAFT DRAFT DRAFT DRAFT DRAFT
in uso
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– supporto per touchscreen
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFTgrafiche
– primitive DRAFT DRAFT
base DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– gestione eventi ad alto livello (Command)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFTeventi
– gestione DRAFTa DRAFT
basso DRAFT
livello DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Package:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– javax.microedition.lcdui
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– javax.microedition.lcdui.game
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
8
Corso Java ME – http://www.gerdavax.it/corsojavame
Differenze rispetto
DRAFT DRAFT DRAFT ai toolkit
DRAFT DRAFT desktop
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● In ogniDRAFT
DRAFT istante esiste
DRAFT un DRAFT
DRAFT solo componente
DRAFT DRAFT DRAFT
principale
DRAFT DRAFT visibile (ad esclusione
DRAFT DRAFT DRAFT DRAFTdei popup
DRAFT DRAFT
informativi
DRAFT DRAFTche possono
DRAFT DRAFT apparire sopra
DRAFT DRAFT altriDRAFT
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
componenti)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Non
DRAFTesistono floating
DRAFT DRAFT DRAFT window: i top-level
DRAFT DRAFT DRAFT DRAFT
component
DRAFT DRAFT non possono
DRAFT essereDRAFT
DRAFT DRAFT spostati
DRAFT néDRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
ridimensionati
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Singolo
DRAFT DRAFTlivello diDRAFT
DRAFT annidamento:
DRAFT DRAFTun top-level
DRAFT DRAFT
component
DRAFT DRAFT non può
DRAFT essere
DRAFT inserito
DRAFT DRAFTall'interno
DRAFT DRAFT di
DRAFT
un DRAFT
altro (nonDRAFT DRAFT implementare
è possibile DRAFT DRAFT DRAFT DRAFT
il design
DRAFT DRAFT
pattern DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Composite!)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
9
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT LCDUI
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
10
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT Display
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● E' la classe
DRAFT DRAFT responsabile della visualizzazione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFTdi
tutti
DRAFTi componenti
DRAFT DRAFT grafici (Displayable)
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Caratteristiche
DRAFT DRAFT DRAFT principali:
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
– “appartiene” alla DRAFT
MIDlet,DRAFT DRAFT
che può DRAFT DRAFT
recuperarne una
DRAFT DRAFT attraverso
reference DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
la factory:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Display.getDisplay(midlet);
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– ad ogni
DRAFT MIDlet
DRAFT DRAFTè assegnata
DRAFT DRAFTuna diversa
DRAFT istanza
DRAFT di
DRAFT
DRAFT DRAFT
Display, cheDRAFT DRAFT DRAFT
non cambia DRAFT
durante DRAFT DRAFT
l'esecuzione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
dell'applicazione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– fornisce informazioni sulle caratteristiche del
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
dispositivo:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
11
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT Displayable
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IlDRAFT
Displayable è il top-level
DRAFT DRAFT component
DRAFT DRAFT visualizzato
DRAFT DRAFT DRAFT
dal
DRAFT Display:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Form: un contenitore per componenti semplici
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– List:DRAFT
DRAFT lista di elementi
DRAFT DRAFTtestuali, con differenti
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFTdiDRAFT
modalità DRAFT DRAFT DRAFT DRAFT DRAFT
selezione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– TextBox: editor di testo elementare
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFTarea
– Canvas: DRAFT DRAFT DRAFT
full-custom DRAFT DRAFT
con primitive DRAFT
di disegno
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Alert: finestra pop-up per la notifica di messaggi
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Un
DRAFT Displayable
DRAFT DRAFT nonDRAFT
può essere né spostato
DRAFT DRAFT né
DRAFT DRAFT
DRAFT DRAFT DRAFT
ridimensionato DRAFT DRAFT
dall'utente: DRAFT DRAFT
il runtime può DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
segnalare al componente un eventuale
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
ridimensionamento
DRAFT DRAFT DRAFT DRAFT (ad esempio,
DRAFT DRAFTnel DRAFT
passaggio
DRAFT
alla
DRAFT modalità landscape)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
12
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT Displayable
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Un
DRAFTDisplayable
DRAFT DRAFTpuòDRAFT
possedere:
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFTstatico
– un titolo DRAFT(Title)
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– una DRAFT
DRAFT barra di testoDRAFT
DRAFT scorrevole
DRAFT(Ticker)
DRAFT DRAFT DRAFT
DRAFT
– uno DRAFT DRAFT DRAFTcorrispondenti
o più Command, DRAFT DRAFT DRAFT DRAFT
ad azioni che
DRAFT DRAFT
l'utente DRAFT
può DRAFTcon
compiere DRAFT DRAFT DRAFT
i softbutton DRAFTo
(cellulari)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
in apposite regioni sensibili del display (palmari)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– un unico
DRAFT DRAFTCommandListener,
DRAFT DRAFT DRAFT DRAFTche riceve
DRAFTnotifica
DRAFT
DRAFT
dellaDRAFT DRAFTdi DRAFT
selezione DRAFT DRAFT
un Command DRAFT
da parte DRAFT
dell'utente
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Un
DRAFTDisplayable
DRAFT DRAFTpuòDRAFT
determinare la propria
DRAFT DRAFT DRAFT DRAFT
dimensione
DRAFT DRAFT e sapere
DRAFT se èDRAFT
DRAFT attualmente visualizzato
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
13
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT Displayable
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Un Displayable
DRAFT DRAFT DRAFTdiventa
DRAFTvisibile sullo schermo
DRAFT DRAFT DRAFT DRAFT
fornendone
DRAFT DRAFT una
DRAFTreferenza al Display:
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Display.getDisplay(midlet).setCurrent(displayable)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Importante:
DRAFT DRAFT setCurrent()
DRAFT DRAFT DRAFTè unDRAFT
metodo
DRAFTnonDRAFT
bloccante!
DRAFT DRAFT Non
DRAFThaDRAFT
il comportamento di
DRAFT DRAFT DRAFT DRAFT
setVisible()
DRAFT DRAFT di AWT!!!
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
14
Corso Java ME – http://www.gerdavax.it/corsojavame
Background
DRAFT DRAFT DRAFT DRAFTeDRAFTforeground
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● L'interfaccia grafica
DRAFT DRAFT DRAFT è strettamente
DRAFT DRAFT DRAFTcorrelata con il
DRAFT DRAFT
ciclo
DRAFTdiDRAFT
vita della
DRAFTMIDlet
DRAFT e con le
DRAFT richieste
DRAFT DRAFT DRAFT
dell'Application
DRAFT DRAFT DRAFT Manager:
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– startApp():
DRAFT DRAFT DRAFTl'applicazione
DRAFT DRAFT deve mostrare
DRAFT DRAFTil DRAFT
primo
Displayable
DRAFT utile per
DRAFT DRAFT l'interazione
DRAFT DRAFT DRAFTconDRAFT
l'utente
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– pauseApp(): l'applicazione non ha più facoltà di
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
utilizzare
DRAFT DRAFTilDRAFT
display e deve
DRAFT sospendere
DRAFT le operazioni
DRAFT DRAFT DRAFT
in corso
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● DRAFT DRAFT
Talvolta può DRAFT
essereDRAFT
utile DRAFT
portareDRAFT
una DRAFT DRAFT
applicazione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
in background lasciandola in esecuzione, ad
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
esempio
DRAFT DRAFT per DRAFT
completare un download...
DRAFT DRAFT DRAFT DRAFT DRAFT
15
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT UnDRAFTtrucchetto...
DRAFT DRAFT DRAFT :-) DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Su alcuni
DRAFT terminali
DRAFT (NokiaDRAFT
DRAFT DRAFT 6600, 6630,
DRAFT 9300,
DRAFT DRAFT
Sony-Ericsson
DRAFT DRAFT DRAFTZ1010...)
DRAFT èDRAFT
possibile
DRAFTforzare
DRAFT una
DRAFT
MIDlet a “scomparire”
DRAFT DRAFT DRAFT DRAFT rimanendo
DRAFT DRAFTin esecuzione
DRAFT DRAFTe
DRAFT
a DRAFT DRAFT
ricomparire, DRAFT
quando DRAFT DRAFT
necessario, DRAFT DRAFT
visualizzando
DRAFT
un DRAFT DRAFT
opportuno DRAFT DRAFT DRAFT DRAFT DRAFT
Displayable:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– per DRAFT
DRAFT andare in background:
DRAFT DRAFT DRAFT è sufficiente
DRAFT DRAFT DRAFT
DRAFT DRAFT a
impostare DRAFT DRAFT
null il DRAFT DRAFT
Displayable DRAFT DRAFT
corrente
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– per tornare in foreground: è sufficiente
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
impostare
DRAFT DRAFT il Displayable
DRAFT corrente
DRAFT DRAFT conDRAFT
DRAFT un DRAFT
componente
DRAFT non DRAFT
DRAFT DRAFT nullo DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● DRAFT DRAFT DRAFT
Nell'esempio DRAFTun
seguente DRAFT DRAFT manda
comando DRAFT DRAFT
in
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
background l'applicazione... che un Thread
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
rimette in primo
DRAFT DRAFT DRAFTpiano
DRAFTdopo 4 secondi
DRAFT DRAFT DRAFT DRAFT
16
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT Background
DRAFT DRAFT DRAFT DEMO DRAFT (1)DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
import javax.microedition.midlet.*;
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
import javax.microedition.lcdui.*;
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT
public classDRAFT DRAFTextends
BackgroundDemo DRAFT DRAFT
MIDlet DRAFT
implements DRAFT DRAFT
CommandListener {
DRAFT
private DRAFT
Form formDRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
= new Form("BackgroundDemo");
DRAFT
private DRAFT DRAFT DRAFT =DRAFT
Command backgroundCommand DRAFT DRAFT DRAFT
new Command("Sparisci!",
DRAFT DRAFT1);DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Command.SCREEN,
19
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT Displayable
DRAFT DRAFT DRAFT e Screen
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● In MIDP
DRAFT 1.0 la
DRAFT gerarchia
DRAFT DRAFT di sottoclassi
DRAFT di
DRAFT DRAFT DRAFT
Displayable
DRAFT DRAFT includeva
DRAFT DRAFT Screen,
DRAFT in quanto
DRAFT DRAFTCanvas
DRAFT
era
DRAFTprivo degli
DRAFT accessor
DRAFT DRAFT per
DRAFT le property
DRAFT DRAFT Title e
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Ticker
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● MIDP
DRAFT 2.0 permette
DRAFT di avere
DRAFT DRAFT DRAFTTitle e Ticker
DRAFT DRAFTanche
DRAFT
sul Canvas
DRAFT DRAFTeDRAFT
per questo
DRAFT motivo
DRAFT DRAFTi rispettivi
DRAFT DRAFT
DRAFT DRAFT
accessor sonoDRAFT
statiDRAFT DRAFT
inclusi DRAFT DRAFT DRAFT
in Displayable
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Screen rimane
DRAFT DRAFT rimane
DRAFT DRAFTall'interno
DRAFT DRAFT della gerarchia
DRAFT DRAFT
DRAFT classi
delle DRAFT ma
DRAFT
nonDRAFT DRAFTmetodi,
aggiunge DRAFT DRAFT
così daDRAFT
DRAFT DRAFT la
mantenere DRAFT DRAFT DRAFT
compatibilità conDRAFT DRAFT DRAFT
il codice
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
precedentemente scritto: può essere considerato
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
alla
DRAFTstregua
DRAFT di unaDRAFT
DRAFT signing interface.
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
20
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT Form DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Form
DRAFT èDRAFT un top-level component
DRAFT DRAFT che permette
DRAFT DRAFT di
DRAFT DRAFT
● IDRAFT
componentiDRAFT DRAFT
sono DRAFT DRAFT in
visualizzati DRAFT DRAFT
ordine di DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
inserimento
DRAFT DRAFT DRAFT nel Form,
DRAFTche gestisce
DRAFT DRAFT DRAFT DRAFT
automaticamente
DRAFT DRAFT DRAFT ilDRAFT focusDRAFT
e la barra
DRAFT di scorrimento
DRAFT DRAFT
(se
DRAFTnecessaria)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Ricorda
DRAFT DRAFT le funzionalità
DRAFT DRAFTdi DRAFT
java.awt.Frame
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Nokia 3250
21
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT ItemDRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Gli Item
DRAFT sono
DRAFT i componenti
DRAFT DRAFT DRAFTelementari che DRAFT
DRAFT DRAFT
possono
DRAFT DRAFTessere aggiunti
DRAFT in sequenza
DRAFT DRAFT ad un DRAFT
DRAFT DRAFT Form:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– StringItem
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– TextField
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– DateField
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– ImageItem
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– ChoiceGroup
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Gauge
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Spacer
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– CustomItem
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Gli Item vengono dispossti nel Form in base a
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
regole di layout
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
22
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFTStringItem
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Lo StringItem
DRAFT visualizza
DRAFT DRAFT un elemento
DRAFT DRAFT di testo
DRAFT DRAFT DRAFT
non
DRAFTeditabile, costituito
DRAFT DRAFT DRAFT da un titolo
DRAFT DRAFT (Label) e un
DRAFT DRAFT
testo
DRAFT (Text)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● MIDP
DRAFT 2.0 introduce
DRAFT il concetto
DRAFT DRAFT DRAFT di Appearance
DRAFT DRAFT DRAFT
Mode:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– PLAIN: campo di testo semplice, non editabile
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– HYPERLINK:
DRAFT campo
DRAFT DRAFT DRAFTdi testo
DRAFTsensibile (link DRAFT
DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
ipertestuale)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– BUTTON: visualizza il testo come pulsante, cui
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
corrisponde
DRAFT una azione
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● DRAFT
Lo DRAFT DRAFT
StringItem puo' DRAFT
generareDRAFT DRAFTassociando
eventi DRAFT DRAFTad
DRAFTun
esso DRAFT DRAFT DRAFT
Command e un DRAFT DRAFT DRAFT DRAFT
CommandItemListener
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● E' possibile
DRAFT DRAFT specificare
DRAFT DRAFTil DRAFT
Font desiderato
DRAFT DRAFT DRAFT
23
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT StringItem
DRAFT DRAFT DRAFTsu emulatori
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
24
Corso Java ME – http://www.gerdavax.it/corsojavame
StringItem
DRAFT DRAFT suDRAFT
DRAFT DRAFT device reali
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT Nokia
DRAFT6630
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT J9 su DRAFT DRAFT
Windows Mobile 5.0
}
28
Corso Java ME – http://www.gerdavax.it/corsojavame
Gli emulatori...
DRAFT non sono
DRAFT DRAFT DRAFT d'accordo!
DRAFT DRAFT :-(
DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT L'informazione
DRAFT DRAFT sul fontDRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT èignorata!
completamente
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
29
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT IDRAFT
device
DRAFTreali
DRAFTvanno meglio!
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
Nokia 6630
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
J9 su Windows DRAFT
Mobile 5.0
DRAFTGauge
DRAFT e ChoiceGroup
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– KeyDRAFT
DRAFT code:DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT
● codice DRAFT DRAFT
di ciascun DRAFT
tasto gestiti DRAFT DRAFT
in modalità DRAFT o
push (Canvas)
DRAFTpullDRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
(GameCanvas)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
39
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFTCommand DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IDRAFT
Command
DRAFT rappresentano
DRAFT DRAFT DRAFT azioni cheDRAFT
DRAFT l'utente può
DRAFT
compiere
DRAFT DRAFT su DRAFT
un Displayable
DRAFT DRAFT o su un Item
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● Un Command
DRAFT DRAFT DRAFT è caratterizzato
DRAFT DRAFT da: DRAFT DRAFT DRAFT
DRAFT DRAFT
– Label: DRAFT DRAFT
l'etichetta DRAFT
di testo DRAFT DRAFT
visualizzata DRAFT
sul display
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Long Label: etichetta opzionale con testo lungo,
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
visualizzata
DRAFT DRAFT DRAFT se lo DRAFT
spazio DRAFT
a schermo
DRAFTloDRAFT
consente
DRAFT
DRAFT
– Type:DRAFT
assegnaDRAFTuna
DRAFT DRAFT DRAFT
semantica DRAFT DRAFT
al Command, in
DRAFT
baseDRAFT DRAFT DRAFT
alla funzione DRAFT
ad esso DRAFT all'interno
correlata DRAFT DRAFT
DRAFT DRAFT DRAFT (navigazione,
dell'applicazione DRAFT DRAFT DRAFT DRAFT DRAFT
conferma,
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
cancellazione...)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Priority:
DRAFT DRAFTindicaDRAFTl'importanza
DRAFT DRAFTdel comando,
DRAFT DRAFT in base
DRAFT
DRAFT DRAFT
al quale DRAFT DRAFT
il runtime cercaDRAFT
di dareDRAFT
più oDRAFT
meno DRAFT
DRAFT DRAFTall'interno
visibilità DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
del menù
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
40
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT Command
DRAFT DRAFTTypeDRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● MIDP
DRAFT definisce
DRAFT DRAFT8 tipi di Command:
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT comando
– SCREEN: DRAFT DRAFT DRAFTdell'applicazione
specifico DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– BACK:
DRAFT comando
DRAFT DRAFT relativo al navigazione
DRAFT DRAFT verso
DRAFT DRAFT la
DRAFT
DRAFTmaschera
DRAFT precedente
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT
– OK, DRAFT
CANCEL,DRAFT DRAFT
EXIT, DRAFT
HELP, DRAFT
STOP: DRAFT DRAFT
comandi su
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
azioni predefinite e standard delle applicazioni
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– ITEM:
DRAFT marca
DRAFT un Command
DRAFT DRAFT DRAFTperDRAFT
un Item o unDRAFT
DRAFT
DRAFT DRAFT di
elemento DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
un ChoiceGroup
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● List
DRAFT haDRAFT
un Command
DRAFT DRAFTpredefinito
DRAFT DRAFT DRAFT DRAFT
(SELECT_COMMAND)
DRAFT DRAFT DRAFT DRAFTrelativo alla selezione
DRAFT DRAFT di un
DRAFT DRAFT
elemento
DRAFT DRAFT della lista
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IlDRAFT
TypeDRAFT
è soloDRAFT
un marcatore
DRAFT DRAFTutile al runtime
DRAFT per la
DRAFT DRAFT
collocazione
DRAFT DRAFT DRAFTdel Command ma DRAFT
DRAFT DRAFT non definisce
DRAFT DRAFT
alcuna logica funzionale 41
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFTCommandDRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● La disposizione
DRAFT DRAFT DRAFT deiDRAFT
Command
DRAFT dipende dal DRAFT
DRAFT DRAFT
dispositivo
DRAFT DRAFTinDRAFTuso. Il runtime
DRAFT DRAFTpotrebbe:
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– mappare specifici Command su tasti funzionali del
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
dispositivo
DRAFT (ad esempio,
DRAFT DRAFT Command.BACK)
DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
– aggiungere DRAFT
al menù DRAFT
nuove vociDRAFT DRAFT DRAFT
corrispondenti a
DRAFT DRAFT DRAFT
funzionalità DRAFT del
accessorie DRAFT DRAFT DRAFT DRAFT
sistema
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– aggregare Command con funzionalità simili o
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
collocarle
DRAFT DRAFT in sottomenù
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● DRAFT
Un DRAFT DRAFT
Command puòDRAFT DRAFT
essere DRAFT DRAFT
aggiunto DRAFT
a più
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Displayable:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– non DRAFT
DRAFT è necessario istanziare
DRAFT DRAFT piùDRAFT
DRAFT volte DRAFT
uno stesso
DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
comando
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– il listener riceve notifica delle azioni di un comando
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
e del Displayable corrente
42
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT CommandListener
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● L'interfaccia
DRAFT DRAFT DRAFT CommandListener permette
DRAFT DRAFT DRAFT DRAFTdiDRAFT
intercettare
DRAFT DRAFT le azioni
DRAFT compiute
DRAFT sui Command:
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT interface
public DRAFT DRAFT DRAFT DRAFT
CommandListener { DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT public voidDRAFT
DRAFT commandAction(Command c, Displayable
DRAFT DRAFT DRAFT d);
DRAFT DRAFT
}DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
essendo possibile associare un Command a più
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Displayable,
DRAFT DRAFT DRAFT la signature include
DRAFT DRAFT una DRAFT
DRAFT reference
DRAFTal
componente
DRAFT DRAFT DRAFT su cuiDRAFT
à stato scatenato
DRAFT l'evento
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IlDRAFT
listener è riferito al Displayable non al singolo
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Command:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
aDisplayable.setCommandListener(aListener)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
43
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFTCommand DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
import javax.microedition.lcdui.*;
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
public class CommandDemo extends Form implements CommandListener {
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
private Command okCommand = new Command("OK!", Command.OK, 1);
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
private Command backCommand = new Command("Indietro", Command.BACK, 1);
DRAFT DRAFT
private Command DRAFT DRAFT
screen1Command DRAFT DRAFT
= new Command("Screen DRAFT DRAFT
1", Command.SCREEN, 1);
DRAFT DRAFT
private Command DRAFT DRAFT
screen2Command DRAFT DRAFT
= new Command("Screen DRAFT DRAFT
2", Command.SCREEN, 2);
DRAFT DRAFT
private Command DRAFT DRAFT
screen3Command DRAFT DRAFT
= new Command("Screen DRAFT DRAFT
3", Command.SCREEN, 3);
74
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFTCasi DRAFTd'uso
DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● IlDRAFT
modello misto
DRAFT DRAFT si DRAFT
puo' applicare
DRAFT DRAFTquando
DRAFT DRAFT
l'applicazione
DRAFT DRAFT DRAFT accede DRAFTa funzionalita'
DRAFT DRAFT atomiche
DRAFT DRAFT
quali:
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– file chooser
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT device/service
– Bluetooth DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
browser
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– Network plugin (email, RSS, chat...)
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
● DRAFT
In DRAFT
questi casiDRAFT DRAFTgestisce
il modulo DRAFT DRAFT DRAFT DRAFT
in modo
DRAFT DRAFT DRAFT
indipendente tuttoDRAFT
il cicloDRAFT DRAFT
di vita DRAFT DRAFT
(ad esempio, la
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
navigazione tra diversi Displayable):
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT specifici
– gli eventi DRAFT DRAFT DRAFT rimangono
del modulo DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT
circoscritti DRAFT DRAFT DRAFT DRAFT DRAFT
all'Internal-Controller
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
– il Main-Controller riceve solo gli eventi “conclusivi”,
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFTcome chiusura
DRAFT DRAFT oDRAFT
selezione
DRAFT di un valore
DRAFT DRAFT DRAFT
75
Corso Java ME – http://www.gerdavax.it/corsojavame
DRAFT DRAFTMainController:
DRAFT DRAFT DRAFT telaio
DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
public class MainController implements CommandListener {
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
private MIDlet DRAFT
DRAFT DRAFT midlet;DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT
private DisplayDRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
display;
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
private Command selectCommand = new Command( .... );
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
private CommandDRAFT
DRAFT DRAFT backCommand
DRAFT =DRAFT
new Command(
DRAFT ....DRAFT ); DRAFT
DRAFT DRAFT
private Module1DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
module1;
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
private Module2 module2;
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT haDRAFT
Il MainController una
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
struttura pressoche' DRAFT
simile a
quella gia' vista in
DRAFT Controller(MIDlet
public DRAFT DRAFT DRAFT DRAFT
midlet) { DRAFT DRAFT
precedenza: DRAFT
i moduli non
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
sono visti DRAFT
come semplici
this.midlet = midlet; Displayable ma con
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
un'interfaccia piu' DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
init(); DRAFT
complessa, DRAFT
indispensabile
per poter leggere i valori
}DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
di uscita DRAFT
delle operazioni
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT compiuteDRAFT DRAFT
nel modulo
Corso Java ME
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
http://www.gerdavax.it/corsojavame
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
84
Corso Java ME – http://www.gerdavax.it/corsojavame