Ecrane și elemente de ecran

Această carte vă va învăța cum să dezvolte software-ul pentru compania platforma «Sun Microsystems» J2ME. Această carte aderă la stilul unui manual, acesta nu este un manual de referință.

Scopul - pentru a vă oferi o fundație fermă în conceptele și tehnicile pe care le va oferi posibilitatea de a decide cu privire la dezvoltarea independentă a aplicațiilor de înaltă calitate.

Carte: Platforma J2ME

Ecrane și elemente de ecran

Ecrane și elemente de ecran

Listarea 5.1 arată un fișier numit UIComponentDemo.java, care definește codul sursă al noului program, demonstrează utilizarea MIDP. Acest fișier utilizează codul în alte fișiere, care reprezintă împreună o demonstrație completă a componentelor de interfață cu utilizatorul programului.

Listarea 5.1. Codul sursă UlComponentDemo

Aceasta demonstrează utilizarea componentelor MIDP UI la nivel înalt. Această clasă de demonstrație creează o listă de programe demonstrative pentru selectarea de către utilizator. Elementele din lista sunt, de fapt, numele claselor primare de programe demonstrative. MID-ani creează o instanță reprezentată în lista de elemente selectate de către utilizator și apoi le efectuează.

public class UlComponentDemo se extinde MIDlet

ieșire comandă privat = nouă comandă ( "Exit", Command.EXIT, 1);

// Numele diferitelor programe demonstrative: Elementele din această listă

// sunt numele claselor primare pentru fiecare demonstrație

// program, String private static [] demo-uri =

exemplu privat UIComponentDemo statică = nul;

Componenta reală // Lista, care afișează elemente

// enumerate în «demo-uri» enumerate mai sus.

Listă privată MainMenu = new List ( "Select demo", Choice.IMPLICIT,

// Constructor No-arg. UIComponentDemo publice ()

// Notă apelul la super (). efectuează

// no-arg constructor din clasa MID-vara. super-();

Returnează o singură instanță a acestei clase. Apelarea această metodă înainte de a crea obiectul returnează un pointer nul.

^ Returnează o instanță a acestei clase.

getlnstance publice UIComponentDemo statice ()

else if (c == exit) 1 quit ();

Codul descris în Exemplul 5.1, este primul exemplu, deoarece este creat folosind un singur tip de obiect de afișare. Ecranul este nucleul cadrului instituțional al MID-letov.

Listarea 5.1 este determinată de MID-ani. Ecranul său este o componentă de nivel înalt a listei, care afișează o listă de opțiuni care reflectă diferitele elemente care demonstrează programul. Figura 5.2 prezintă o listă de demonstrație de nivel superior a aplicațiilor pe care le puteți rula. Acest ecran principal este un exemplu de lista.

Observați săgeata de pe ecran, cu vârful în jos. Ea subliniază faptul că există elemente pentru care spatiul nu este suficient pe ecran. Dacă defilați în jos un pic, o săgeată orientată în jos va dispărea și, în schimb va fi o săgeată îndreptată în sus. Aceste săgeți sunt plasate pe ecran realizarea componentei Listă.

Lista este o vedere a ecranului, care, desigur, este afișabilă și o adaptează la structura familiară de aplicare generală. Puteti vedea în Listarea 5.1 că Lista exemplu este afișată în acest moment, în esență, este un obiect care primește apelul echipei evenimente. Sam MID-ani este o unitate de astfel de evenimente de ascultare, inscriindu-se ca CommandListener pentru aceste evenimente. Acesta implementează interfață CommandListener și definește commandAction metoda ().

O modalitate alternativă de a crea o ascultare blochează crearea componentelor ascultător de evenimente care au loc în acesta. Pentru a realiza acest lucru, cu toate acestea, ar trebui să creeze o subclasă în componenta de clasă, în acest caz, creând o subclasă a Listei. Am ales prima abordare și de a folosi o clasă Lista standard fără subclasarea.

Figura 5.2 prezintă o listă de programe demonstrative ale componentelor de interfață cu utilizatorul. Numele pe care le vedeți, sunt numele principalelor clase pentru fiecare demo. Atunci când unul dintre ei este executat programul demonstrativ corespunzător. Desigur, va trebui să compilați programele demo înainte de a încerca să le înceapă. În caz contrar, veți obține o ClassNotFoundException eroare.

Dacă utilizați J2ME Wireless Toolkit, aveți nevoie doar de a pune fișierele sursă în proiectul / UIComponents directorul / src. Apoi a crea un proiect. Setul de instrumente fără fir compilează toate fișierele sursă într-un / director sic. El va începe verificarea de pre-verificator și în cele din urmă pentru a plasa fișiere. clasă în clasele de directorul de proiect /. Din acest punct puteți efectua o demonstrație a programului enumerate în fereastra principală, MID-vara.

În exemplul următor, voi compila mai întâi și apoi pune la dispoziție un program de AlertDemo, primul element din listă. Pentru a rula un program demonstrativ compilat, pur și simplu selectați AlertDemo din lista prezentată în figura 5.2. Repetați acești pași pentru a crea și rula pentru fiecare dintre celelalte demo-uri.

Figura 5.3 arată ecranul care apare atunci când selectați un element din lista AlertDemo programe demonstrative de nivel superior. Acest ecran afișează un set diferit de elemente - setați tipul de notificare - cu o altă componentă numită MIDP ChoiceGroup. Ecranul care conține tipurile de notificare, create în fișier de cod AlertDemo.java, se arată în Listing 5.2. Selectarea unul dintre elementele de pe acest ecran creează și afișează un exemplu de acest tip de alertă pentru componente.

ierarhie moștenire prezentată în Figura 5.1 arată că ChoiceGroup este nici Screen sau afișabile. Acest tip de articol. Reamintim din secțiunea 3. element care este o componentă care poate fi agregate în formular. Rețineți că clasa AlertDemo completează formularul, ceea ce îi dă posibilitatea de a agrega și TextField elemente ChoiceGroup.

În figura 5.3 se poate vedea Formularul - o copie AlertDemo - care conține obiecte ChoiceGroup și TextField. Să ne amintim că Forma este singurul MIDP component, care poate include alte componente. Astfel, programul AlertDemo trebuie să utilizeze elemente de depozitare Forma ChoiceGroup și TextField.

Ecrane și elemente de ecran

Figura 5.2. Image UIComponentDemo ecranul principal. Elementele sunt numele principalelor clase pentru fiecare demo

Ecrane și elemente de ecran

Figura 5.3. Acasă notificări pe ecranul de program demonstrativ este o formă care obedinyaetTextField și ChoiceGroup

Listarea 5.2. Notificările sunt ecrane, dar ele nu pot conține obiecte de comandă. Trebuie să specificați afișabilă, care trebuie să fie afișate în cazul în care notificarea nu va fi disponibil

Denumirile tipurilor de selecție exclusivă și MULTIPLE vorbesc de la sine. Punerea în aplicare a MIDP, vizualiza afișajul pictogramele de selecție sunt diferite pentru liste exclusive și multiple. Împiedicarea listele de selectare au un cerc pe partea stângă a elementului de text similar cu butoanele selective de pe AWT și aplicațiile Swing, și punctul de interior care indică elementul selectat. Listele de selecție multiple vizualiza caseta de componente în partea stângă a elementului de text, similar cu butoanele pentru marca de aplicații AWT și Swing.

Ai văzut deja un exemplu de alertă în capitolul 3, aici puteți vedea din nou. Metoda commandAction () AlertDemo clasa creează cinci tipuri diferite de rapoarte pe baza datelor pe care un utilizator intră în ecranul Build Alert (Creare notificare), așa cum se arată în figura 5.3. Constructorul clasei ia valoarea Alert AlertType. care reflectă tipul de notificare, care variază în funcție de unitatea. Clasa AlertType definește cinci constante care reprezintă tipurile posibile de actualizări prezentate în tabelul 5.2.

Tabelul 5.2. Clasa constantele AlertType, care reprezintă posibile tipuri de obiecte de alertă

Clasa AlertType constantă - Descriere

ALARMĂ (atenție) - notificare, care afișează apariția unor evenimente de urgență

CONFIRMARE (confirmare) - Caseta de dialog care solicită utilizatorului pentru confirmarea acțiunii

EROARE (eroare) - caseta de dialog care notifică utilizatorul despre o eroare

INFO (informații) - caseta de dialog, în care există un mesaj de informare pentru utilizator

ATENȚIE (Avertizare) - Caseta de dialog care afișează un avertisment

Notificare Aspectul nu se schimbă în funcție de tipul de notificare. Scopul tipul de notificare este de a permite programator pentru a distinge mai ușor notificări diferite obiecte. Acesta oferă, de asemenea, o oportunitate de a demonstra punerea în aplicare a anumitor tipuri de notificări în diferite moduri.

tipul de notificare nu afectează comportamentul său. Ai văzut-o organizație similară a obiectului de comandă în aplicația HelloWorld. Atribuirea simplă a unui anumit tip de comandă nu schimbă comportamentul în nici un fel. Alegerea este a ta ca programator în crearea unei secvențe în modul în care sunt tratate cu tipuri similare de alertă și de comandă obiecte.

Dacă executați programul de exemplu, veți vedea că ecranele de notificare nu au comenzi asociate cu ei, de fapt, ei nu le pot avea. Veți observa, de asemenea, că ecranul de notificare dispare după 5 secunde și a reveni ecranul Build Alert (Creare notificare). Motivul pentru aceasta constă în faptul că programul este implicit durata de 5 secunde pentru toate notificările.

Amploarea duratei apariției notificării trebuie să fie mai mare decât 0. Valorile de setare conduce la mai puțin de 0 IllegalArgumentException. Setați ora de expirare a notificării prin metoda Alert.setTimeout (). Dacă specificați o Alert.FOREVER constantă, realizare pune Efectuat tasta soft (Done) la notificare. Anunțul va rămâne deschisă atâta timp cât utilizatorul face clic Done (Efectuat).

TextField este ultima componentă nouă, care introduce acest program demonstrativ. TextField este o versiune de articol, așa cum se arată în figura 5.1. TextField - este una dintre cele două componente pentru a introduce text. Un alt aspect este TextBox, pe care o vom discuta mai târziu în acest capitol. Componente pentru introducerea textului utilizând conceptul de restricție care limitează intrarea la un anumit set de caractere permise definite constrângeri de componente de forță.

Clasa de TextField definește diferitele tipuri de restricții constante enumerate în tabelul 5.3 impuse.

Tabelul 5.3. Tipuri de restricții impuse de clasa TextField

Restricții constantă - Descriere

ORICE - Orice caractere alfanumerice

numai caractere numerice - NUMERIC

PAROLA - Semnele nu sunt afișate

PHONENUMBER - numai caractere numerice, punerea în aplicare a formatului oferă locuri de muncă

URL - Numai LJRL corect sintactic