|
Guide di programmazione -
J2ME - Guida completa
|
|
Scritto da RedBaron85
|
|
Sabato 30 Gennaio 2010 18:14 |
Guida a J2ME --- Java MicroEdition - Capitolo 10: Command e gli eventi
Capitolo 10: Command e gli eventi.
La gestione degli eventi, in J2ME, segue il modello Unicast: vi è un solo listener (lett.: 'ascoltatore') degli eventi per ogni componente.
Ciò significa che ad ogni componente verrà associato un solo listener che dovrà riconoscere i tipi di eventi riguardanti il suo comando e gestirli di conseguenza.
Per intercettare gli eventi di comando bisogna implementare l'interfaccia CommandListener, che ci 'obbliga' a scrivere il metodo:
- commandAction(Command c, Displayable d) : void;
il cui corpo conterrà le azioni da intraprendere quando verrà attivato il Command c sul Displayable d.
E' possibile impostare un CommandListener per un Command mediante il metodo:
- setCommandListener(CommandListener l) : void.
La seguente porzione di codice identifica una versione 'ampliata' della MIDlet presentata nel capitolo precedente; in questo caso, un CommandListener si occupa di gestire l'evento di pressione del tasto associato al Command di tipo EXIT e label "Esci":
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Prova extends MIDlet implements CommandListener { private Display d; private Form f; private Command esci; public Prova() { d = Display.getDisplay(this); f = new Form("Form di prova"); esci = new Command("Esci", Command.EXIT, 1); f.addCommand(esci); f.setCommandListener(this); // Imposto il listener dei comandi per il Form (che è un displayable) d.setCurrent(f); } protected void startApp() { } protected void pauseApp() { } protected void destroyApp(boolean arg0) { notifyDestroyed(); } public void commandAction(Command c, Displayable s) { int t = c.getCommandType(); if (t==Command.EXIT) destroyApp(true); // Termino l'applicazione else if (t==Command.BACK) ; // Se, ad esempio, è un Command BACK, fai qualcos'altro, e così via... } }
Provate adesso a lanciare la MIDlet e a premere il pulsante del cellulare posto vicino alla label "Esci": l'esecuzione della MIDlet terminerà .
|
|
Ultimo aggiornamento Domenica 22 Gennaio 2012 16:17 |
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.