Cum se face o expunere de diapozitive pe J2Me?
Ce este un MIDlet?
Deoarece Java 2 Micro Edition suportă un număr mare de dispozitive, există diferite configurații ale acestei platforme. Fără a intra în detalii, vom folosi de configurare CDLC (Device Configuration Limited Conectat), profile extinse ca MIDP (Mobile Information Device Profile), care asigură funcționalitatea necesară pentru a programa un telefon mobil.
Un MIDlet este o aplicație Java care utilizează profilul MIDP și configurația CLDC.
După aceea, va apărea o fereastră pentru introducerea informațiilor care vor fi folosite pentru a crea fișierul manifest și fișierul .jad, aici nu puteți face nimic și faceți clic pe OK.
Acum, să aruncăm o privire asupra dosarului în care este instalat Wireless Toolkit, directorul proiectului nostru SlideShow a apărut în directorul de aplicații. A creat automat mai multe foldere, ia în considerare scopul unora dintre ele:
bin - fișiere de aplicații: fișier .jar, fișier .jad, MANIFEST.MF
res - Fișiere de resurse de aplicație, cum ar fi fișiere de imagine .png
src - Fișiere de aplicație sursă
Cum funcționează MIDletul?
Acum, să trecem la codul programului. Toate MIDlet-urile trebuie să completeze clasa javax.microedition.midlet.MIDlet, adică să o aibă ca clasă de bază. (Cei care nu sunt familiarizați cu limbile orientate pe obiecte pot citi literatura suplimentară în această etapă, deoarece terminologia corespunzătoare va fi utilizată ulterior). Acest lucru se face astfel:
import javax.microedition.midlet.MIDlet;
clasa publica SlideShow extinde MIDlet
.
>;
MIDleturi este o clasă abstractă, astfel încât este necesar să se rescrie mai multe metode: startApp (), pauseApp () și destroyApp (), care prevăd acțiuni în funcție de schimbarea stării actuale a MIDlet-ului (dacă la început, să suspende sau să înceteze, respectiv).
O situație de urgență poate apărea aici dacă, de exemplu, numele fișierului este incorect sau fișierul specificat nu este o imagine. Trebuie reținut faptul că manipularea de urgență este obligatorie în Java folosind blocuri try-catch, altfel aplicația pur și simplu nu va fi compilată.
Următorul obiect de care avem nevoie este un formular. Un formular este o instanță a clasei Form, care conține toate obiectele afișate pe ecran. Obiectele sunt adăugate la formular utilizând metoda append (...) și șterse prin metoda delete (int itemNum). Având în vedere toate cele de mai sus, vom scrie funcția de a crea o imagine și a adăuga-o la forma:
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.Form;
import java.io.IOException;
public void setImage (calea de șir)
încercați imaginea = Image.createImage (calea);
>
captură (IOException ioe) System.out.println (ioe.getMessage ());
>
form.append (imagine);
>
Ultimul obiect principal din această ierarhie este o instanță a clasei Display, care reprezintă afișarea fizică a ecranului telefonului mobil. Puteți obține o referință la obiectul Afișare folosind metoda getDisplay, dar faceți formularul obiectului curent de afișare - utilizând metoda setCurrent. Astfel, funcția startApp () va arăta astfel:
public void startApp () display = Display.getDisplay (aceasta);
form = Formular nou ("SlideShow");
setImage ("/ SlideShow.png");
display.setCurrent (formă);
>
Rămâne să adăugați membrii clasei de afișare, formă, imagine în clasa SlideShow, iar programul care afișează imaginea SlideShow.png de pe ecran este gata.
import javax.microedition.lcdui.Command;
.
next = comandă nouă ("următorul", Command.SCREEN, 1);
back = comandă nouă ("înapoi", Command.SCREEN, 1);
form.addCommand (următorul);
form.addCommand (înapoi);
Acum implementăm clasa de ascultare și executare:
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
clasa privată MyCommandListener implementează CommandListener public void commandAction (comanda c, afișabil d) dacă (c == următorul).
>
dacă (c == înapoi).
>
>
Obiectul noii clase este asociat cu obiectul form folosind metoda setCommandListener (...), adăugăm crearea obiectului de procesare a comenzii la funcția startApp ():
cl = noul MyCommandListener ();
form.setCommandListener (cl);
Cum să arăți o mulțime de poze?
La aceasta toate lucrările pregătitoare este finalizată, avem acum toate facilitățile necesare, iar noi sunt ca cărămizi, să elaboreze programul nostru. Noi spunem că imaginea pe care dorim sa arate ca: 1.png, 2.png, ..., în același timp, se adaugă membru SlideShow două clase: int slideNum si int maxSlideNum, care va conține numărul curent al imaginii și numărul total de imagini, respectiv.
În metoda de procesare a comenzilor, adăugați o logică pentru a schimba imaginile de pe ecran când apăsați tastele. În cele din urmă, programul nostru va arăta astfel:
clasa publica SlideShow extinde afișarea MIDlet privată a afișajului;
formular privat;
comandă privată următoare;
comandă privată înapoi;
imagine privată imagine;
privat MyCommandListener cl;
private int slideNum = 1;
int int maxSlideNum = 6;
public void destroyApp (boolean distruge) form = null;
notifyDestroyed ();
>
public void pauseApp () <>
public void startApp () ...
>
public void setImage (calea de șir).
>
clasa privată MyCommandListener implementează CommandListener <
public void commandAction (Command c, Afișaj d) dacă (c == next slideNum
form.delete (0);
setImage ("/" + Integer.toString (slideNum) + ".png");
>
>
>;
Cum pot porni programul?
Asta e tot, rămâne să compilați programul utilizând opțiunea Construiți în KToolbar. Când mesajul Build a eșuat, examinați cu atenție dacă nu ați pierdut nimic. După ce programul a fost compilat cu succes, puteți să îl porniți și să îl vedeți în acțiune într-unul dintre emulatorii inclusi în Wireless Toolkit utilizând opțiunea Executare.
Aceasta ne încheie lecția. Conectați-vă imaginația la capacitățile tehnice ale telefonului dvs. mobil și veți fi fericiți!
Evgeny Butkevich (alias Voolkan)