Pentru a crea un nou proiect vom selecta File->New Project iar din fereastra de dialog
nou aparuta vom selecta New Midlet Suite. Acest lucru poate fi vazut in figura de mai jos.
Fig.1.1 Fereastra New Project
De aici inainte, pentru a creea proiectul, se vor urma pasii wizard-ului. O data creat un
proiect, acesta nu va contine nici un fisier pentru cod sursa. In j2ME orice aplicatie trebuie sa fie
o clasa care deriva din clasa MIDlet. In consecinta primul fisier pe care il vom crea in noul
proiect va fi o clasa care va deriva din aceasta clasa MIDlet. Inainte insa de a crea aceasta
clasa trebuie creat un pachet (package) care va contine acest fisier. Daca nici un pachet nu
este creat fisierul va fi continut in pachetul implicit numit “default”. Pentru a crea un pachet nou
trebuie sa dati click dreapta de directorul sursa src si sa selectati new->package. In fereastra de
dialog aparuta se va introduce numele pachetului si se va apasa finish. Figura de mai jos
prezinta rezultatul adaugarii a doua astfel de pachete.
Fig.1.2 Adaugarea de pachete la un proiect
Vom adauga fisierul care reprezinta aplicatia in pachetul midlet. Pentru a face acest
lucru vom da click dreapta pe pachet si vom selecta New->Class. In fereastra de dialog nou
aparuta vom configure clasa in mod asemanator cu figura de mai jos.
Fig.1.3 Fereastra Add New Class
Din figura de mai sus se poate vedea ca numele clasei este Midlet si ca deriva din clasa
de baza MIDlet care reprezinta o aplicatie pentru dispozitive mobile. De asemenea se observa
ca am selectat optiunea pentru generarea automata a metodelor care sunt abstracte in clasa de
baza. Dupa ce apasam finish fisierul va fi creat. Codul sursa pentru acest fisier poate fi vazut in
figura de mai jos.
Fig.1.4 Codul sursa generat pentru clasa Midlet
Putem observa ca avem 3 metode care vor trebui implementate. Mai exact va trebui sa
implementam startApp() si destroyApp(). startApp() va fi apelata in mod automat la pornirea
aplicatiei sau la aducerea aplicatiei din background in foreground. destroyApp() va si apelata
pentru inchiderea aplicatiei. pauseApp() nu este obligatoriu sa fie implementata. Aceasta
metoda va fi apelata atunci cand aplicatia este pusa in background.
Majoritatea aplicatiilor care sunt construite trebuie sa interactioneze cu utilizatorul. In
acest sens aplicatia trebuie sa-I ofere utilizatorului o interfata pe care sa o foloseasca. Pe
ecranul dispozitivului mobil pot fi afisate doar clase care deriva din clasa de baza Displayable.
J2ME vine cu 2 astfel de clase predefinite: Canvas si Screen. Canvas-ul folosiste un mod de
programare de nivel mai scazut acolo unde tot ce este afisat pe ecran trebuie scris manual de
catre programator. Pentru a folosi interfete de nivel mai ridicat vom folosi clase care deriva in
mod direct sau indirect din clasa Screen. J2ME furnizeaza 4 astfel de clase: Alert, Form, List si
TextBox. Toate aceste clase vor fi descrise pe larg in restul cursului. Pentru acest prim exemplu
vom folosi clasa Form. Dupa cum ii spune si numele aceasta clasa reprezinta un formular.
Aceasta clasa este singura clasa care poate fi folosita pentru a adauga alte controale utilizator.
Pentru acest prim exemplu vom dori sa afisam un formular care va contine un label cu
traditionalul “hello world”. Acest formular va trebui creat si afisat in metoda startApp() a clasei
Midlet pe care am creat-o anterior. Instantierea clasei si setara proprietatilor acesteia poate fi
vazuta in figura de mai jos.
Fig.1.5 Instantierea formularului principal al aplicatiei
Pentru a putea vedea acest formular pe ecranul telefonului va trebui sa-I spunem
aplicatiei sa-l afiseze. Acest lucru se face folosind clasa Display. Aceasta clasa este un
singleton care ne va oferi accesul la ecranul telefonului. Folosind aceasta instanta vom putea
afisa pe ecran interfata oricarei aplicatii. Acest lucru poate fi vazut in figura de mai jos.
Fig.1.6 Afisarea formularului principal pe ecran
Se poate observa ca pentru instantierea acestui singleton avem nevoie de o referinta la
un midlet. Din moment ce suntem deja intr-o astfel de clasa putem sa trecem this ca argument
la metoda getDisplay(). O data ce avem referinta la ecranul telefonului tot ce trebuie sa facem
este sa chemam setCurrent() si sa trecem ca argument ecranul pe care vrem sa-l afisam.
Inainte sa pornim aplicatia trebuie sa mai stabilim doua lucruri: cum facem sa inchidem
aplicatia pe care vrem sa o pornim si cum ii oferim utilizatorului posibilitatea de a inchide
aplicatia. In primul rand pentru a inchide un midlet trebuie sa apelam metoda notifyDestroyed()
a acestuia. De obicei acest lucru se specifica in destroyApp() care apoi va fi apelat cu un
argument de true. Acest lucru poate fi vazut in figura de mai jos.
Fig.1.7 Inchiderea aplicatiei
Dupa cum se poate vedea din figura de mai sus am mai implementat o metoda public
ace va fi folosita pentru apelarea corespunzatoare a metodei destroyApp().
Ultimul lucru care a mai ramas acum de facut este de a-I oferi utilizatorului posibilitatea sa
apeleze aceasta metoda. Acest lucru poate fi facut adaugand o comanda la formularul
instantiate anterior.
Pentru a adauga o astfel de comanda va trebui sa facem urmatoarele lucruri:
instantierea si setarea prorietatilor comenzii, adaugarea comenzii la formular, abonarea la
evenimentul de click al comenzii si executarea codului. Toate aceste lucruri pot fi vazute in
figura de mai jos.
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.