際際滷

際際滷Share a Scribd company logo
Lezione del Prof. Silvano Natalizi maggio 2009 Java cellulari
Specifica del programma Si vogliono memorizzare nel cellulare alcune domande di storia con le relative risposte Si vuole visualizzare tutto lelenco delle domande Su richiesta dellutente cliccando su di una domanda si vuole visualizzare la risposta
Inserimento dei dati Anzitutto occorre memorizzare le domande di storia, una ad una. Conviene anche memorizzare per ciascuna domanda la sua risposta corretta A questo scopo creiamo un oggetto RecordStore con due stringhe di caratteri al suo interno, una per la domanda e laltra per la risposta
Form per linserimento dei dati Occorre definire una Form con due caselle di testo per inserire i dati nel RecordStore Per inserire i dati di input occorre definire una interfaccia utente USER INTERFACE (UI) La Form 竪 un metodo per definire una interfaccia utente La classe Form si trova nel package: Javax.microedition.lcdui: Limited Capability Device User Interface
Diagramma delle classi della interfaccia utente
Che cosa 竪 una Form ? La Form 竪 come un coltelletto svizzero, versatile, utile  simile alle finestre di windows Si possono aggiungere ad essa degli items (componenti) per creare una interfaccia utente personalizzata LCDUI 竪 piena di items, tutti discendenti dalla classe Item Noi usiamo la casella di testo TextField
La classe Form
Display class La classe Display fornisce il fondamento per una interazione visuale con un programmi MIDlet Pu嘆 esserci una ed una sola istanza della classe Display in un programma MIDlet Loggetto Display ci permette di comunicare con il dispositivo e di fornire un contesto nel quale visualizzare i componenti dello schermo
Un oggetto di tipo Display Per ottenere un oggetto  Display, si usa il metodo statico getDisplay() Questo metodo restituisce un oggetto di tipo Display Display display=Display.getDisplay(this); La parolachiave (this) identifica loggetto corrente della classe MIDlet.
Codice per costruire la Form Il costruttore public Form(String titolo) permette di instanziare un oggetto Form con un titolo: Form domandeStoria=new Form(Domande di Storia); Il metodo  display.setCurrent(domandeStoria); Permette di visualizzare questa finestra nello schermo del cellulare. E un metodo della classe Display, infatti agisce sulloggetto display restituito precedentemente da getDisplay !
La Form che vogliamo ottenere
Casella di testo Per inserire delle caselle di testo per linserimento dei dati della domanda e della risposta, si usa un oggetto della classe TextField TextField domanda=new TextField(); C ostruttore per il TextField: TextField(String label, String text, int maxSize, int constraints) Label: etichetta  text: testo iniziale maxSize: massima lunghezza del testo Constraints: tipo di dato digitabile  (NUMERIC,DECIMAL,ANY,...)
Come creare una casella di testo domanda=newTextField("domanda:","",100,TextField.ANY); risposta=  newTextField("risposta:","",100,TextField.ANY);
Per aggiungere le caselle di testo alla form Per aggiungere le caselle di testo alla form si usa il metodo della form  append(): domandeStoria.append(domanda); domandeStoria.append(risposta);
Riepilogo del codice che visualizza una form import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * @author Aspire M5500 */ public class DomandeStoria extends MIDlet { private Display display; private Form domandeStoria; private TextField domanda; private TextField risposta; public DomandeStoria(){ domandeStoria=new Form("Domande di Storia"); domanda=new TextField("domanda:","",100,TextField.ANY); risposta=new TextField("risposta:","",100,TextField.ANY); domandeStoria.append(domanda); domandeStoria.append(risposta); } public void startApp() { display=Display.getDisplay(this); display.setCurrent(domandeStoria); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }
Fine della prima parte Abbiamo costruito la form Abbiamo aggiunto alcune caselle di testo Abbiamo visualizzato  Possiamo digitare i nostri dati Tuttavia il programma fatto non ha dei comandi n辿 il codice per elaborare questi dati Pertanto il passo successivo da fare 竪 quello di inserire dei comandi che permettano ad esempio di memorizzare questi dati in un RecordStore
Creare un bottone per memorizzare i dati La classe Command permette di creare un bottone per il cellulare
油
油
Come pu嘆 il programma exit? Per fornire un modo per uscire dal programma, occorre usare un comando exit() Un comando 竪 come un bottone , ha un titolo, come "OK" or "Cancel,"  e la vostra applicazione pu嘆 rispondere ad esso in maniera appropriata, quando lutente invoca il  comando
Event Handling with  Command s Displayable, the parent of all screen displays, supports  Commands .  Si possono aggiungere o togliere comandi con i seguenti metodi:  public void addCommand(Command cmd) public void removeCommand(Command cmd)
Command  O bjects In J2ME, commands sono comunemente rappresentati con soft-buttons neldevice.  Il seguente diagramma  mostra due  Command objects, uno con letichetta "Exit" e laltro con "View." soft-buttons
Command  O bjects Se ci sono troppi comandi sul display, un device creer un men湛  per mostrare i comandi multipli.  Il seguente diagramma  mostra come pu嘆 apparire.
Use Command objects Gli step basici per elaborare degli eventi con un oggetto Command sono: Creare un Command object. Add the Command to a Form  (or other GUI objects  TextBox, List, or Canvas ) . Creare and set a listener (ascolto) for the Form. Quando un evento 竪 rilevato, il listener chiamer il metodo commandAction().
Creare un  Command Per creare un Command,  bisogna fornire una   label , un type, e una priority.  Command Meaning BACK  returns to the previous screen.  CANCEL  standard negative answer to a dialog EXIT  for exiting from the application.  HELP  a request for on-line help.  ITEM  specific to the items of the Screen or the elements of a Choice.  OK  standard positive answer to a dialog  SCREEN  an application-defined command  STOP  A command that will stop some currently running process, operation, etc.
Create a  Command Per creare uno standard OK command, ad esempio, si deve fare: Command c = new Command("OK", Command.OK, 0); Per creare un comando specifico allapplicazione, si deve fare: Command c = new Command( "Launch", Command.SCREEN, 0); label type priority
P riority Ogni comando ha una priorit.  Numeri pi湛 bassi indicano maggiore priorit.  se aggiungi un command con priority 0, poi altri  con priority 1, la priority 0 command sar mostrato nello schermo direttamente. Gli altri comandi finiranno in un men湛 secondario.
Responding to Commands I comandi sono mostrati nello schermo, ma niente accade automaticamente quando un utente invoca un comando dovete creare un oggetto   listener   che sar chiamato  when the user invokes any command in a Displayable.  The listener is an object that implements the  CommandListener  interface.  To register the listener with a Displayable, use the following method: public void  setListener (CommandListener l) Note it is one Listener per Displayable, NOT one Listener per one Command.
Example import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Commander extends MIDlet  implements CommandListener  { public void startApp() { Displayable d = new Form( "Test Command" ); Command c = new Command("Exit", Command.EXIT, 0); d.addCommand(c); d.setCommandListener(this); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void  commandAction ( Command  c,  Displayable  s) { notifyDestroyed(); } } Abstract method of CommandListener. Will be called when any command in the Form is selected.
油
Another Command Example (Two Forms) Launch Exit Exit 2nd Form Go to First Form
Another Command Example (Two Forms) import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Commander2 extends MIDlet   implements CommandListener { Display display = null; Form f1 = null; Form f2 = null; // command Command firstFormCommand =   new Command("1st Form", "Go to First Form", Command.SCREEN, 0); Command secondFormCommand =   new Command("2nd Form", "Go to Second Form", Command.SCREEN, 0); Command exitCommand =   new Command("Exit", Command.EXIT, 1);
Another Command Example (Two Forms) public void startApp() { display = Display.getDisplay(this); f1 = new Form( "Form 1" ); f1.append( "This is Form No. 1"  ); f1.addCommand(secondFormCommand); f1.addCommand(exitCommand); f1.setCommandListener(this); f2 = new Form( "Form 2" ); f2.append( "This is Form No. 2"  ); f2.addCommand(firstFormCommand); f2.addCommand(exitCommand); f2.setCommandListener(this); display.setCurrent( f1 ); }
Another Command Example (Two Forms) public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { String label =  c.getLabel(); if (label.equals("Exit")) { notifyDestroyed(); } else if (label.equals("1st Form")) { Display.getDisplay(this).setCurrent( f1 ); } else { Display.getDisplay(this).setCurrent( f2 ); } } }
Fine della seconda parte
Ora inseriamo i comandi nella nostra applicazione Definiamo due variabili di tipo Command, luna per uscire dallapplicazione, laltra per aggiungere i dati digitati al RecordStore Command uscire; Command inserire; Ora istanziamo i due comandi: uscire=new Command(Quit,Command.Exit,0); Inserire=new Command(Add,Command.SCREEN,1);
Per aggiungere i  comandi nella form Per aggiungere i comandi nella form si usa il metodo addCommand() domandeStoria.addCommand(uscire); domandeStoria.addCommand(inserire);
Lanciando il programma : Comando per uscire Comando per inserire i dati
Settare lascolto dei comandi Anzitutto va inserito lascolto (un orecchio) del comando domandeStoria.setCommandListener(this);
Dare ai comandi un lavoro da fare public void commandAction(Command c, Displayable s){ if (c==uscire){ destroyApp(true); notifyDestroyed(); } } Occorre implementare il metodo commandAction()
Il lavoro di inserimento dati if (c==inserire){ str=domanda.getString() + ":" + risposta.getString(); dati=str.getBytes(); try { numRec=rs.addRecord(dati,0,dati.length); } catch (Exception exc){ exc.printStackTrace(); } }
Apertura del RecordStore try { rs=RecordStore.openRecordStore("domandeStoria", true); } catch(Exception exc){ exc.printStackTrace(); }
Chiusura del RecordStore try { rs.closeRecordStore(); } catch (Exception exc){ exc.printStackTrace(); }

More Related Content

What's hot (7)

Quinta lezione android
Quinta lezione androidQuinta lezione android
Quinta lezione android
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Agile Testing: Come Scrivere Use Case
Agile Testing: Come Scrivere Use CaseAgile Testing: Come Scrivere Use Case
Agile Testing: Come Scrivere Use Case
Stefano Trojani
Terza lezioneandroid
Terza lezioneandroidTerza lezioneandroid
Terza lezioneandroid
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Eseguire pi湛 suite di test automatici insieme con Selenium IDE - Evolve Today!
Eseguire pi湛 suite di test automatici insieme con Selenium IDE - Evolve Today! Eseguire pi湛 suite di test automatici insieme con Selenium IDE - Evolve Today!
Eseguire pi湛 suite di test automatici insieme con Selenium IDE - Evolve Today!
Stefano Trojani
Javascript - 8 | WebMaster & WebDesigner
Javascript - 8 | WebMaster & WebDesignerJavascript - 8 | WebMaster & WebDesigner
Javascript - 8 | WebMaster & WebDesigner
Matteo Magni
Sesta lezione android
Sesta lezione androidSesta lezione android
Sesta lezione android
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Laboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switchLaboratorio Programmazione: Overflow e switch
Laboratorio Programmazione: Overflow e switch
Majong DevJfu

Viewers also liked (16)

Laboratorio sulle ricerche di mercato
Laboratorio sulle ricerche di mercatoLaboratorio sulle ricerche di mercato
Laboratorio sulle ricerche di mercato
Rita Bonucchi
Social network e blog
Social network e blogSocial network e blog
Social network e blog
Rita Bonucchi
COME IMPOSTARE LUFFICIO ESTERO NELLE PMI
COME IMPOSTARE LUFFICIO ESTERO NELLE PMICOME IMPOSTARE LUFFICIO ESTERO NELLE PMI
COME IMPOSTARE LUFFICIO ESTERO NELLE PMI
Rita Bonucchi
Internazionalizzazione nel Sudest Asiatico
Internazionalizzazione nel Sudest AsiaticoInternazionalizzazione nel Sudest Asiatico
Internazionalizzazione nel Sudest Asiatico
Rita Bonucchi
Objective Marketer piattaforma di social marketing by Sebastiano Cappa
Objective Marketer piattaforma di social marketing by Sebastiano CappaObjective Marketer piattaforma di social marketing by Sebastiano Cappa
Objective Marketer piattaforma di social marketing by Sebastiano Cappa
Ligatus GmbH | Gruner + Jahr
Database Finders
Database FindersDatabase Finders
Database Finders
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Check up della comunicazione
Check up della comunicazioneCheck up della comunicazione
Check up della comunicazione
Rita Bonucchi
Lorganizzazione e loperativit di un ufficio commerciale estero
Lorganizzazione e loperativit di un ufficio commerciale esteroLorganizzazione e loperativit di un ufficio commerciale estero
Lorganizzazione e loperativit di un ufficio commerciale estero
Rita Bonucchi
La comunicazione di impresa
La comunicazione di impresaLa comunicazione di impresa
La comunicazione di impresa
Rita Bonucchi
Laboratorio cross culture
Laboratorio cross cultureLaboratorio cross culture
Laboratorio cross culture
Rita Bonucchi
SEO (Search Engine Optimization) Indicizzazione nei motori di ricerca
SEO (Search Engine Optimization) Indicizzazione nei motori di ricercaSEO (Search Engine Optimization) Indicizzazione nei motori di ricerca
SEO (Search Engine Optimization) Indicizzazione nei motori di ricerca
Carlo Marenzi
Ricerca di Mercato e internazionalizzazione
Ricerca di Mercato e internazionalizzazioneRicerca di Mercato e internazionalizzazione
Ricerca di Mercato e internazionalizzazione
Rita Bonucchi
Ricerca e selezione rivenditore agente
Ricerca e selezione rivenditore agenteRicerca e selezione rivenditore agente
Ricerca e selezione rivenditore agente
Rita Bonucchi
Come fare marketing internazionale con poche risorse
Come fare marketing internazionale con poche risorseCome fare marketing internazionale con poche risorse
Come fare marketing internazionale con poche risorse
Rita Bonucchi
Partecipare efficacemente alle fiere all'estero
Partecipare efficacemente alle fiere all'esteroPartecipare efficacemente alle fiere all'estero
Partecipare efficacemente alle fiere all'estero
Rita Bonucchi
Business Model Canvas - Il caso PlayWood
Business Model Canvas - Il caso PlayWoodBusiness Model Canvas - Il caso PlayWood
Business Model Canvas - Il caso PlayWood
InSide Training
Laboratorio sulle ricerche di mercato
Laboratorio sulle ricerche di mercatoLaboratorio sulle ricerche di mercato
Laboratorio sulle ricerche di mercato
Rita Bonucchi
Social network e blog
Social network e blogSocial network e blog
Social network e blog
Rita Bonucchi
COME IMPOSTARE LUFFICIO ESTERO NELLE PMI
COME IMPOSTARE LUFFICIO ESTERO NELLE PMICOME IMPOSTARE LUFFICIO ESTERO NELLE PMI
COME IMPOSTARE LUFFICIO ESTERO NELLE PMI
Rita Bonucchi
Internazionalizzazione nel Sudest Asiatico
Internazionalizzazione nel Sudest AsiaticoInternazionalizzazione nel Sudest Asiatico
Internazionalizzazione nel Sudest Asiatico
Rita Bonucchi
Objective Marketer piattaforma di social marketing by Sebastiano Cappa
Objective Marketer piattaforma di social marketing by Sebastiano CappaObjective Marketer piattaforma di social marketing by Sebastiano Cappa
Objective Marketer piattaforma di social marketing by Sebastiano Cappa
Ligatus GmbH | Gruner + Jahr
Check up della comunicazione
Check up della comunicazioneCheck up della comunicazione
Check up della comunicazione
Rita Bonucchi
Lorganizzazione e loperativit di un ufficio commerciale estero
Lorganizzazione e loperativit di un ufficio commerciale esteroLorganizzazione e loperativit di un ufficio commerciale estero
Lorganizzazione e loperativit di un ufficio commerciale estero
Rita Bonucchi
La comunicazione di impresa
La comunicazione di impresaLa comunicazione di impresa
La comunicazione di impresa
Rita Bonucchi
Laboratorio cross culture
Laboratorio cross cultureLaboratorio cross culture
Laboratorio cross culture
Rita Bonucchi
SEO (Search Engine Optimization) Indicizzazione nei motori di ricerca
SEO (Search Engine Optimization) Indicizzazione nei motori di ricercaSEO (Search Engine Optimization) Indicizzazione nei motori di ricerca
SEO (Search Engine Optimization) Indicizzazione nei motori di ricerca
Carlo Marenzi
Ricerca di Mercato e internazionalizzazione
Ricerca di Mercato e internazionalizzazioneRicerca di Mercato e internazionalizzazione
Ricerca di Mercato e internazionalizzazione
Rita Bonucchi
Ricerca e selezione rivenditore agente
Ricerca e selezione rivenditore agenteRicerca e selezione rivenditore agente
Ricerca e selezione rivenditore agente
Rita Bonucchi
Come fare marketing internazionale con poche risorse
Come fare marketing internazionale con poche risorseCome fare marketing internazionale con poche risorse
Come fare marketing internazionale con poche risorse
Rita Bonucchi
Partecipare efficacemente alle fiere all'estero
Partecipare efficacemente alle fiere all'esteroPartecipare efficacemente alle fiere all'estero
Partecipare efficacemente alle fiere all'estero
Rita Bonucchi
Business Model Canvas - Il caso PlayWood
Business Model Canvas - Il caso PlayWoodBusiness Model Canvas - Il caso PlayWood
Business Model Canvas - Il caso PlayWood
InSide Training

Similar to Spiegazione Programma phone (20)

Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
NoDelay Software
Programming iOS lezione 1
Programming iOS lezione 1Programming iOS lezione 1
Programming iOS lezione 1
NoDelay Software
Mocking Objects Practices
Mocking Objects PracticesMocking Objects Practices
Mocking Objects Practices
GrUSP
Javascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerJavascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesigner
Matteo Magni
La Grafica Con Java
La Grafica Con JavaLa Grafica Con Java
La Grafica Con Java
Giuseppe Tropea
Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015
Todi Appy Days
Wearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple WatchWearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple Watch
Paolo Musolino
KDE Plasma widgets
KDE Plasma widgetsKDE Plasma widgets
KDE Plasma widgets
Pietro Lerro
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
Franco Lombardo
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
Riccardo Piccioni
.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App
.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App
.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App
Marco Bortolin
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
Gian Maria Ricci
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
Sergio Ronchi
Intercettare gli eventi di mouse e tastiera
Intercettare gli eventi di mouse e tastieraIntercettare gli eventi di mouse e tastiera
Intercettare gli eventi di mouse e tastiera
Federico Paparoni
Unit testing 101
Unit testing 101Unit testing 101
Unit testing 101
Daniel Londero
iContract
iContractiContract
iContract
guest891383
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
guest60e9511
Hexagonal architecture ita
Hexagonal architecture itaHexagonal architecture ita
Hexagonal architecture ita
Alessandro Minoccheri
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
NoDelay Software
Programming iOS lezione 1
Programming iOS lezione 1Programming iOS lezione 1
Programming iOS lezione 1
NoDelay Software
Mocking Objects Practices
Mocking Objects PracticesMocking Objects Practices
Mocking Objects Practices
GrUSP
Javascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesignerJavascript - 7 | WebMaster & WebDesigner
Javascript - 7 | WebMaster & WebDesigner
Matteo Magni
Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015
Todi Appy Days
Wearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple WatchWearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple Watch
Paolo Musolino
KDE Plasma widgets
KDE Plasma widgetsKDE Plasma widgets
KDE Plasma widgets
Pietro Lerro
Primo Incontro Con Scala
Primo Incontro Con ScalaPrimo Incontro Con Scala
Primo Incontro Con Scala
Franco Lombardo
corso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascriptcorso web developer - Introduzione a Javascript
corso web developer - Introduzione a Javascript
Riccardo Piccioni
.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App
.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App
.NET Conf 2022 at 1nn0va - .NET MAUI focus on Desktop App
Marco Bortolin
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
Gian Maria Ricci
Intercettare gli eventi di mouse e tastiera
Intercettare gli eventi di mouse e tastieraIntercettare gli eventi di mouse e tastiera
Intercettare gli eventi di mouse e tastiera
Federico Paparoni
7 Sottoprogrammi
7   Sottoprogrammi7   Sottoprogrammi
7 Sottoprogrammi
guest60e9511

More from Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA (20)

Interferenza dueonde
Interferenza dueondeInterferenza dueonde
Interferenza dueonde
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Procedimentodisoluzione fisicaparticelle
Procedimentodisoluzione fisicaparticelleProcedimentodisoluzione fisicaparticelle
Procedimentodisoluzione fisicaparticelle
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Proc solescercaparabolastaccasegmentosuassex
Proc solescercaparabolastaccasegmentosuassexProc solescercaparabolastaccasegmentosuassex
Proc solescercaparabolastaccasegmentosuassex
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Problema fisica compito in classe
Problema fisica compito in classeProblema fisica compito in classe
Problema fisica compito in classe
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Esercizi sulla energia meccanica
Esercizi sulla energia meccanicaEsercizi sulla energia meccanica
Esercizi sulla energia meccanica
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Problemi di trigonometria
Problemi di trigonometriaProblemi di trigonometria
Problemi di trigonometria
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione Blog Didattici 27 4 2010
Lezione Blog Didattici 27 4 2010Lezione Blog Didattici 27 4 2010
Lezione Blog Didattici 27 4 2010
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Portale libreria online
Portale libreria onlinePortale libreria online
Portale libreria online
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione programmazione database con java Servlet - quarta parte
Lezione programmazione database con java Servlet - quarta parteLezione programmazione database con java Servlet - quarta parte
Lezione programmazione database con java Servlet - quarta parte
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione jsp su come gestire una tabella relazionale con chiave esterna
Lezione jsp su come gestire una tabella relazionale con chiave esternaLezione jsp su come gestire una tabella relazionale con chiave esterna
Lezione jsp su come gestire una tabella relazionale con chiave esterna
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione jsp pdatabase crud quintaparte
Lezione jsp pdatabase crud quintaparteLezione jsp pdatabase crud quintaparte
Lezione jsp pdatabase crud quintaparte
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Natalizi thyristors seconda lezione
Natalizi thyristors seconda lezioneNatalizi thyristors seconda lezione
Natalizi thyristors seconda lezione
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione anonymousinnerclass
Lezione anonymousinnerclassLezione anonymousinnerclass
Lezione anonymousinnerclass
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione JSP database Crud
Lezione JSP database CrudLezione JSP database Crud
Lezione JSP database Crud
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Thyristors
ThyristorsThyristors
Thyristors
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Seconda Lezione Android
Seconda Lezione AndroidSeconda Lezione Android
Seconda Lezione Android
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA

Recently uploaded (18)

Test Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: KendallTest Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: Kendall
alawamajina
Digital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions ManualDigital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions Manual
idderkribo
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Damiano Orru
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazioneCustomer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
belodevici
New Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy AlbersNew Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy Albers
uxhcablende
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
orakategy
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon ManningLearning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
jelieltoinks
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark JohnstonTest Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
pplqadiri
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
osanoarak
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario AutovalutazioneCustomer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
belodevici
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : SueTest Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
dementogge
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
orrahnaf
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
izmarmelum
La tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptxLa tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptx
Fabio Scandurra
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim WalkerImproving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
aokasmaany
2 - Presentazione disturbo spettro autismo.pdf
2 - Presentazione disturbo spettro  autismo.pdf2 - Presentazione disturbo spettro  autismo.pdf
2 - Presentazione disturbo spettro autismo.pdf
GiovanniBertoni
Designing Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael FrahmDesigning Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael Frahm
ewoadetozito
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
orakategy
Test Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: KendallTest Bank for Systems Analysis and Design 8th Edition: Kendall
Test Bank for Systems Analysis and Design 8th Edition: Kendall
alawamajina
Digital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions ManualDigital Business Networks 1st Edition Dooley Solutions Manual
Digital Business Networks 1st Edition Dooley Solutions Manual
idderkribo
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Presentazione della Dichiarazione di Dubai sulle OER alla comunit italiana -...
Damiano Orru
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazioneCustomer Satisfaction a.s. 2022-23 - Questionario autovalutazione
Customer Satisfaction a.s. 2022-23 - Questionario autovalutazione
belodevici
New Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy AlbersNew Methods of Literacy Research 1st Edition Peggy Albers
New Methods of Literacy Research 1st Edition Peggy Albers
uxhcablende
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...Essentials of Accounting for Governmental and Not for Profit Organizations 13...
Essentials of Accounting for Governmental and Not for Profit Organizations 13...
orakategy
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon ManningLearning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
Learning Swift Building Apps for OSX, iOS, and Beyond Jon Manning
jelieltoinks
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark JohnstonTest Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
Test Bank for Marketing Management, 3rd Edition, Greg Marshall, Mark Johnston
pplqadiri
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
(eBook PDF) Auditing: A Practical Approach with Data Analytics by Raymond N. ...
osanoarak
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario AutovalutazioneCustomer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
Customer Satisfaction a.s. 2023-24 - Questionario Autovalutazione
belodevici
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : SueTest Bank for Understanding Abnormal Behavior, 10th Edition : Sue
Test Bank for Understanding Abnormal Behavior, 10th Edition : Sue
dementogge
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
Test Bank for Foundations of Financial Markets and Institutions, 4th Edition:...
orrahnaf
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
Test Bank for Canadian Organizational Behaviour, 10th Edition, Steven McShane...
izmarmelum
La tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptxLa tossicodipendenza pi湛 difficile da trattare.pptx
La tossicodipendenza pi湛 difficile da trattare.pptx
Fabio Scandurra
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim WalkerImproving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
Improving Code Quality 1st Edition Yiannis Kanellopoulos & Tim Walker
aokasmaany
2 - Presentazione disturbo spettro autismo.pdf
2 - Presentazione disturbo spettro  autismo.pdf2 - Presentazione disturbo spettro  autismo.pdf
2 - Presentazione disturbo spettro autismo.pdf
GiovanniBertoni
Designing Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael FrahmDesigning Intelligent Construction Projects Michael Frahm
Designing Intelligent Construction Projects Michael Frahm
ewoadetozito
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
Essentials of Accounting for Governmental and Not-for-Profit Organizations 12...
orakategy

Spiegazione Programma phone

  • 1. Lezione del Prof. Silvano Natalizi maggio 2009 Java cellulari
  • 2. Specifica del programma Si vogliono memorizzare nel cellulare alcune domande di storia con le relative risposte Si vuole visualizzare tutto lelenco delle domande Su richiesta dellutente cliccando su di una domanda si vuole visualizzare la risposta
  • 3. Inserimento dei dati Anzitutto occorre memorizzare le domande di storia, una ad una. Conviene anche memorizzare per ciascuna domanda la sua risposta corretta A questo scopo creiamo un oggetto RecordStore con due stringhe di caratteri al suo interno, una per la domanda e laltra per la risposta
  • 4. Form per linserimento dei dati Occorre definire una Form con due caselle di testo per inserire i dati nel RecordStore Per inserire i dati di input occorre definire una interfaccia utente USER INTERFACE (UI) La Form 竪 un metodo per definire una interfaccia utente La classe Form si trova nel package: Javax.microedition.lcdui: Limited Capability Device User Interface
  • 5. Diagramma delle classi della interfaccia utente
  • 6. Che cosa 竪 una Form ? La Form 竪 come un coltelletto svizzero, versatile, utile simile alle finestre di windows Si possono aggiungere ad essa degli items (componenti) per creare una interfaccia utente personalizzata LCDUI 竪 piena di items, tutti discendenti dalla classe Item Noi usiamo la casella di testo TextField
  • 8. Display class La classe Display fornisce il fondamento per una interazione visuale con un programmi MIDlet Pu嘆 esserci una ed una sola istanza della classe Display in un programma MIDlet Loggetto Display ci permette di comunicare con il dispositivo e di fornire un contesto nel quale visualizzare i componenti dello schermo
  • 9. Un oggetto di tipo Display Per ottenere un oggetto Display, si usa il metodo statico getDisplay() Questo metodo restituisce un oggetto di tipo Display Display display=Display.getDisplay(this); La parolachiave (this) identifica loggetto corrente della classe MIDlet.
  • 10. Codice per costruire la Form Il costruttore public Form(String titolo) permette di instanziare un oggetto Form con un titolo: Form domandeStoria=new Form(Domande di Storia); Il metodo display.setCurrent(domandeStoria); Permette di visualizzare questa finestra nello schermo del cellulare. E un metodo della classe Display, infatti agisce sulloggetto display restituito precedentemente da getDisplay !
  • 11. La Form che vogliamo ottenere
  • 12. Casella di testo Per inserire delle caselle di testo per linserimento dei dati della domanda e della risposta, si usa un oggetto della classe TextField TextField domanda=new TextField(); C ostruttore per il TextField: TextField(String label, String text, int maxSize, int constraints) Label: etichetta text: testo iniziale maxSize: massima lunghezza del testo Constraints: tipo di dato digitabile (NUMERIC,DECIMAL,ANY,...)
  • 13. Come creare una casella di testo domanda=newTextField("domanda:","",100,TextField.ANY); risposta= newTextField("risposta:","",100,TextField.ANY);
  • 14. Per aggiungere le caselle di testo alla form Per aggiungere le caselle di testo alla form si usa il metodo della form append(): domandeStoria.append(domanda); domandeStoria.append(risposta);
  • 15. Riepilogo del codice che visualizza una form import javax.microedition.midlet.*; import javax.microedition.lcdui.*; /** * @author Aspire M5500 */ public class DomandeStoria extends MIDlet { private Display display; private Form domandeStoria; private TextField domanda; private TextField risposta; public DomandeStoria(){ domandeStoria=new Form("Domande di Storia"); domanda=new TextField("domanda:","",100,TextField.ANY); risposta=new TextField("risposta:","",100,TextField.ANY); domandeStoria.append(domanda); domandeStoria.append(risposta); } public void startApp() { display=Display.getDisplay(this); display.setCurrent(domandeStoria); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }
  • 16. Fine della prima parte Abbiamo costruito la form Abbiamo aggiunto alcune caselle di testo Abbiamo visualizzato Possiamo digitare i nostri dati Tuttavia il programma fatto non ha dei comandi n辿 il codice per elaborare questi dati Pertanto il passo successivo da fare 竪 quello di inserire dei comandi che permettano ad esempio di memorizzare questi dati in un RecordStore
  • 17. Creare un bottone per memorizzare i dati La classe Command permette di creare un bottone per il cellulare
  • 18.
  • 19.
  • 20. Come pu嘆 il programma exit? Per fornire un modo per uscire dal programma, occorre usare un comando exit() Un comando 竪 come un bottone , ha un titolo, come "OK" or "Cancel," e la vostra applicazione pu嘆 rispondere ad esso in maniera appropriata, quando lutente invoca il comando
  • 21. Event Handling with Command s Displayable, the parent of all screen displays, supports Commands . Si possono aggiungere o togliere comandi con i seguenti metodi: public void addCommand(Command cmd) public void removeCommand(Command cmd)
  • 22. Command O bjects In J2ME, commands sono comunemente rappresentati con soft-buttons neldevice. Il seguente diagramma mostra due Command objects, uno con letichetta "Exit" e laltro con "View." soft-buttons
  • 23. Command O bjects Se ci sono troppi comandi sul display, un device creer un men湛 per mostrare i comandi multipli. Il seguente diagramma mostra come pu嘆 apparire.
  • 24. Use Command objects Gli step basici per elaborare degli eventi con un oggetto Command sono: Creare un Command object. Add the Command to a Form (or other GUI objects TextBox, List, or Canvas ) . Creare and set a listener (ascolto) for the Form. Quando un evento 竪 rilevato, il listener chiamer il metodo commandAction().
  • 25. Creare un Command Per creare un Command, bisogna fornire una label , un type, e una priority. Command Meaning BACK returns to the previous screen. CANCEL standard negative answer to a dialog EXIT for exiting from the application. HELP a request for on-line help. ITEM specific to the items of the Screen or the elements of a Choice. OK standard positive answer to a dialog SCREEN an application-defined command STOP A command that will stop some currently running process, operation, etc.
  • 26. Create a Command Per creare uno standard OK command, ad esempio, si deve fare: Command c = new Command("OK", Command.OK, 0); Per creare un comando specifico allapplicazione, si deve fare: Command c = new Command( "Launch", Command.SCREEN, 0); label type priority
  • 27. P riority Ogni comando ha una priorit. Numeri pi湛 bassi indicano maggiore priorit. se aggiungi un command con priority 0, poi altri con priority 1, la priority 0 command sar mostrato nello schermo direttamente. Gli altri comandi finiranno in un men湛 secondario.
  • 28. Responding to Commands I comandi sono mostrati nello schermo, ma niente accade automaticamente quando un utente invoca un comando dovete creare un oggetto listener che sar chiamato when the user invokes any command in a Displayable. The listener is an object that implements the CommandListener interface. To register the listener with a Displayable, use the following method: public void setListener (CommandListener l) Note it is one Listener per Displayable, NOT one Listener per one Command.
  • 29. Example import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Commander extends MIDlet implements CommandListener { public void startApp() { Displayable d = new Form( "Test Command" ); Command c = new Command("Exit", Command.EXIT, 0); d.addCommand(c); d.setCommandListener(this); Display.getDisplay(this).setCurrent(d); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction ( Command c, Displayable s) { notifyDestroyed(); } } Abstract method of CommandListener. Will be called when any command in the Form is selected.
  • 30.
  • 31. Another Command Example (Two Forms) Launch Exit Exit 2nd Form Go to First Form
  • 32. Another Command Example (Two Forms) import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class Commander2 extends MIDlet implements CommandListener { Display display = null; Form f1 = null; Form f2 = null; // command Command firstFormCommand = new Command("1st Form", "Go to First Form", Command.SCREEN, 0); Command secondFormCommand = new Command("2nd Form", "Go to Second Form", Command.SCREEN, 0); Command exitCommand = new Command("Exit", Command.EXIT, 1);
  • 33. Another Command Example (Two Forms) public void startApp() { display = Display.getDisplay(this); f1 = new Form( "Form 1" ); f1.append( "This is Form No. 1" ); f1.addCommand(secondFormCommand); f1.addCommand(exitCommand); f1.setCommandListener(this); f2 = new Form( "Form 2" ); f2.append( "This is Form No. 2" ); f2.addCommand(firstFormCommand); f2.addCommand(exitCommand); f2.setCommandListener(this); display.setCurrent( f1 ); }
  • 34. Another Command Example (Two Forms) public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable d) { String label = c.getLabel(); if (label.equals("Exit")) { notifyDestroyed(); } else if (label.equals("1st Form")) { Display.getDisplay(this).setCurrent( f1 ); } else { Display.getDisplay(this).setCurrent( f2 ); } } }
  • 36. Ora inseriamo i comandi nella nostra applicazione Definiamo due variabili di tipo Command, luna per uscire dallapplicazione, laltra per aggiungere i dati digitati al RecordStore Command uscire; Command inserire; Ora istanziamo i due comandi: uscire=new Command(Quit,Command.Exit,0); Inserire=new Command(Add,Command.SCREEN,1);
  • 37. Per aggiungere i comandi nella form Per aggiungere i comandi nella form si usa il metodo addCommand() domandeStoria.addCommand(uscire); domandeStoria.addCommand(inserire);
  • 38. Lanciando il programma : Comando per uscire Comando per inserire i dati
  • 39. Settare lascolto dei comandi Anzitutto va inserito lascolto (un orecchio) del comando domandeStoria.setCommandListener(this);
  • 40. Dare ai comandi un lavoro da fare public void commandAction(Command c, Displayable s){ if (c==uscire){ destroyApp(true); notifyDestroyed(); } } Occorre implementare il metodo commandAction()
  • 41. Il lavoro di inserimento dati if (c==inserire){ str=domanda.getString() + ":" + risposta.getString(); dati=str.getBytes(); try { numRec=rs.addRecord(dati,0,dati.length); } catch (Exception exc){ exc.printStackTrace(); } }
  • 42. Apertura del RecordStore try { rs=RecordStore.openRecordStore("domandeStoria", true); } catch(Exception exc){ exc.printStackTrace(); }
  • 43. Chiusura del RecordStore try { rs.closeRecordStore(); } catch (Exception exc){ exc.printStackTrace(); }