Sunteți pe pagina 1din 7

Componente Swing

JButton
JCheckBox
JFrame
JLabel
JScrollBar
JScrollPane
JTextArea
JTextField
JColorChooser
JFileChooser
JDialog
JProgressBar
JSlider
JInternalFrame
Layout Managers
BorderLayout
BoxLayout
CardLayout
FlowLayout
ridBagLayout
ridLayout
rou!Layout
S!ringLayout
Po"itionare absoluta
Card Layout
Layout$ul CardLayout% !ermite crearea unei arii ce contine com!onente di&erite la
momente di&erite' CardLayout este adesea controlat de catre un ComboBox% a carui
stare determina care dintre !aneluri (arie de com!onente) sa &ie a&isate de catre
CardLayout' * alternati+a la &olosirea CardLayout este utili"area de tabbed !ane'
Flow layout
FlowLayout este managerul de&ault !entru orice JPanel' Acest Layout !une
com!onentele intr$un singur rand% continuand a!oi !e al doilea rand% in ca" ca nu
exista su&ient s!atiu in container'
Grid Bag Layout
ridBagLayout este un manager com!lex si &elxibil' In acest manager% !o"itioarea
com!onenteleor este &acuta !rin !lasarea lor intr$un grid de celule lasand
com!onentele sa ocu!e mai mult de o celula' In acest grid% randurile !ot a+ea inaltimi
di&erite% iar coloanele !ot a+ea latimi di&erite'
GroupLayout
rou!Layout este un layout de"+oltat !entru a &i utili"at de editoarele ,I% insa !oate
si &olosit si indi+idual' rou!Layout lucrea"a cu layout se!arat !e +erticala si !e
ori"ontala'Layout$ul este de&init inde!endent !e &iecare dimensiune' Ast&el% &iecare
com!onenta trebuie sa &ie de&inita de doua ori in layout'
SpringLayout
S!ringLayout rou!Layout este un layout de"+oltat !entru a &i utili"at de editoarele
,I'
S!ringLayout !ermite de&inirea unei relatii !recise intre marginile a doua com!onente'
De exem!lu se !oate de&ini ca marginea stanga a unei com!onente este la o anumita
distanta (ce !oate &i calculata dinamic) &ata de marginea drea!ta a unei alte
com!onente'
Joel on Software
Interfata utilizator este importanta pentru ca afecteaza sentimentele, emotiile si starea de
spirit a utilizatorilor tai. Daca interfata utilizator este gresita si utilizatorul simte ca nu iti
poate controla software-ul, ei literalmente nu vor fi fericiti, si vor da vina pe software-
ul tau. Daca interfata utilizator e desteapta si lucrurile functioneaza in modul in care
utilizatorul s-a asteptat sa functioneze, vor fi bucurosi caci au reusit sa duca la bun
sfarsit mici teluri.
Interfata treuie sa se comporte in modul in care ei(utilizatorii) se asteapta sa se
comporte.
Axioma importanta: O interfata utilizator este bine proiectata cand programul se
comporta exact cum utilizatorul s-a gandit ca ar functiona.
Modelul utilizator: este interpretarea lor mintala a ceea ce programul face pentru ei,
daca modelul program este similar cu modelul utilizator, ai o interfata utilizator de
succes.
De cati utilizatori ai nevoie pentru a testa interfata ta - !proape oricine isi castiga
painea din teste de utilizabilitate crede ca cinci sau sase utilizatori sunt dea"uns.
Axioma - Daca modelul tau program nu e trivial, probabil nu e modelul utilizator.
Important: De fiecare data cand furnizezi o optiune, ii ceri utilizatorului sa ia o decizie.
ar trebui intodeauna sa incerci sa minimizezi numarul de decizii pe care oamenii trebuie
sa le ia.
Din moment ce optiunea afecteaza aspectul vizual fara a afecta nimic din
functionalitate, si din moment ce utilizatorii sunt liberi sa ignore aceasta optiune si sa isi
faca oricum treaba, asta este o buna utilizare a optiunilor.
Metafore, accesibilitati
Consecventa - consecventa cauzeaza usurinta de utilizare care in sc#imb cauzeaza
sentimente placute rezultand mai multi bani pentru tine.$onsecventa este un principiu
fundamental al unui bun design %I, dar este doar un corolar al axiomei &fa modelul
program sa se potriveasca cu modelul utilizator&, pentru ca modelul utilizator este mai
probabil sa reflecte modul in care utilizatorii vad alte programe functionand. Designerii
%I buni folosesc consecventa inteligent, si, desi s-ar parea ca nu isi etaleaza creativitatea
asa bine, pe termen lung ii face pe utilizatori mai fericiti.
$and proiectezi interfete utilizator, e o buna idee sa ai doua principii in minte:
- %tilizatorii nu au manualul, si daca l-ar avea, nu l-ar citi.
- De fapt, utilizatorii nu pot citi nimic, si daca ar putea, nu ar vrea.
%nul din principiile timpurii ale interfe '%I era ca nu ar trebui sa le ceri oamenilor sa
isi aminteasca lucruri care ar putea sa si le aminteasca calculatorul. Oamenii isi
amintesc lucrurile mult mai bine cand li se dau niste indicii, si intodeauna ar prefera sa
mai degraba sa aleaga ceva dintr-o lista decat sa trebuiasca sa isi aduca aminte.
$elalalt lucru grozav despre planificarea bazata pe activitate este ca iti permite sa faci
o lista a ce functionalitati sa nu faci. $and creezi orice fel de software, realitatea este ca
vei sugera de trei ori mai multe functionalitati decat ai timp sa faci. (i una din cele mai
bune cai de a decide ce functionalitati sa implementezi, si ce functionalitati sa lasi
afara, este de a evalua ce functionalitati suporta cele mai importante activitati ale
utilizatorului.
$ei mai buni designeri %I din industrie sunt cu totii de acord asupra unui lucru: trebuie
sa inventezi si sa descrii cativa utilizatori imaginari inainte sa iti proiectezi %I-ul.
)entru a rezuma, proiectarea unui software bun iti ia cam sase pasi:
Inventeaza niste utilizatori
Identifica activitatile importante
Identifica modelul utilizator -- cum se va asteapta utilizatorul sa finalizeze acele
activitati
*raseaza prima sc#ita a designului
Itereaza asupra designului tau din nou si din nou, facandu-l mai usor si mai usor,
pana cand e compatibil cu abilitatile utilizatorilor tai imaginari
%rmareste utilizatori reali incercand sa foloseasca software-ul tau. Observa
zonele unde lumea are dificultati, care probabil iti evidentiaza zonele unde
modelul program nu se potriveste cu modelul utilizator.
%I-ul bun vinde software-ul, dar in acelasi timp face oamenii fericiti, pentru ca oamenii
sunt fericiti cand finalizeaza sarcina care au dorit sa o finalizeze. De aceea designul %I
este un domeniu care iti ofera o extrema satisfactie. %nde in alta parte vei avea o sansa
sa faci milioane de oameni putintel mai fericiti
Principii de baz pentru crearea interfetelor interactive
Anticiparea - !plicatiile ar trebui s+ anticipeze nevoile si dorintele utilizatorului.
Autonomia
- $alculatorul, interfata, mediul de lucru, ,apartin- utilizatorului, dar autonomia
utilizatorului nu .nseamn+ ca trebuie uitate regulile.
- /olositi mecanisme de afisare a st+rii procesului pentru a tine utilizatorii
informati
- 0entineti informatiile de stare la curent si la vedere
Consecventa
- 1ivele de consistent+: Importanta de a mentine o consistenta strict+ variaz+.
- Inconsecventa: c2nd obiectele de interfat+ se comport+ diferit este tot at2t de
important+
inconsecventa vizual+ ca si consecventa atunci c2nd obiectele se comport+
similar.
3vitati uniformitatea. Imaginea obiectelor trebuie s+ se potriveasc+ logic cu
menirea lor. /aceti obiectele care se comport+ diferit s+ arate diferit.
!ficienta utilizatorului
- %rm+riti productivitatea utilizatorului, nu a calculatorului
- *ineti utilizatorul ocupat
- 0arile realiz+ri legate de eficient+ .n domeniul software se g+sesc .n
ar#itectura fundamental+ a sistemului, nu .n partea de suprafat+, designul interfetei.
Interfete explorabile
- Oferiti utilizatorilor c+i bine stabilite si repere, apoi l+sati-i s+ porneasc+ la
drum
- /aceti actiunile reversibile
- 4ntotdeauna oferiti optiunea de ,%ndo-
- 4ntotdeauna permiteti o modalitate de a iesi
"egea lui #itts
- *impul necesar atingerii unei tinte este o functie .ntre distant+ si dimensiunea
tintei
$biecte ale interfetei umane
- Obiectele interfetei umane pot fi v+zute, auzite, atinse, sau percepute .ntr-un alt
fel
- Obiectele interfetei umane care pot fi v+zute sunt foarte familiare .n interfetele
grafice.
- Obiectele care fac apel la un alt simt cum ar fi auzul sau pip+itul sunt mai putin
familiare.
- Obiectele interfetei umane au un mod standard de interactiune
- Obiectele interfetei umane au comportamente standard
- Obiectele interfetei umane trebuie s+ fie inteligibile, logice, stabile
%educerea latentei
- Oric2nd e posibil, folositi mai multe fire de executie pentru a .mpinge latenta .n
bac5ground
- 6atenta poate fi de obicei ascuns+ utilizatorilor prin te#nica firelor de executie,
l+s2ndu-i s+-si continue lucrul .n timp ce transmisia sau calculele se realizeaz+ .n spate.
- 7educeti impactul latentei asupra utilizatorului
Monitorizarea strilor
- Deoarece multe dintre aplicatiile noastre bazate pe navigare exist+ .ntr-un
spatiu f+r+ stare, avem noi .nsine responsabilitatea de a monitoriza st+rile
- Informatii despre stare ar trebui tinute .ntr-un ,coo5ie- pe masina client pe
durata unei sesiuni care contine servicii tranzactionale, si apoi salvat+ pe server la
deconectare.
Ar&itectura software pentru interfe'e utilizator
- 1u se pun .ntreb+ri la care userul nu poate r+spunde.
- 4ntotdeauna trebuie s+ oferim user-ului o cale de ie8ire.
Modelul Model()iew(Controller *Model(Prezentare(Controler+
9 (epar+ preocup+rile pentru p+r:ile din aplica:ie care se vad, de p+r:ile din
aplica:ie care nu se v+d.
9 (epar+ intr+rile de ie8iri
9 )ermite aplicarea mai multor views (prezent+ri) pentru acelea8i date.
9 )ermite prezent+rilor sau controlerelor s+ poat+ fi reutilizate pentru alte
modele.
9 3xemple: text box
9 0odel: string-ul modificabil
9 ;iew: dreptung#iul cu text .n el<
9 $ontroler: codul ce se ocupa de tratarea evenimentelor de tastatur+. (caracterele
introduse de la tastatur+)
(epar+ interfa:a utilizator a aplica:iei, de codul aplica:iei ce se afl+ .n spatele interfe:ei.
0;$ separ+ de asemenea intrarea de ie8ire< controlerul ar trebuie s+ trateze intr+rile, iar
prezentarea s+ trateze ie8irile.
0odelul model-view-controller a ap+rut prima data .n interfa:a (malltal5-=>, 8i de
atunci a avut o importanta influen:+ asupra proiect+rii interfe:elor utilizator.
%n exemplu simplu de model 0;$ este un text box. 0odelul este string-ul, sirul de
caractere modificabil. )rezentarea (view) este un obiect care afi8eaz+?deseneaz+ textul
pe ecran (de obicei cu un dreptung#i de "ur .mpre"ur pentru a indica c+ este vorba de un
c2mp text editabil). $ontrolerul este un obiect ce prime8te caracterele tastate la tastatur+
de c+tre utilizator 8i le insereaz+ .n string.
Modelul
9 7esponsabil cu datele
9 0en:ine starea aplica:iei (c2mpurile de date)
9 Implementeaz+ mecanismul ? comportamentul state-c#anging (sc#imbarea
starilor)
9 1otific+ prezent+rile sau controlerele dependente c2nd apare ? intervine o
sc#imbare. (modelul observer)
)iew *prezentare+
9 responsabil+ de ie8ire
9 are caracteristici de ecran (pozi:ie, dimensiune)
9 deseneaz+ pe ecran
9 ascult+ modific+rile din model
9 interog#eaz+ modelul pentru a-l desena
9 o prezentare are numai un model
9 dar un model poate avea mai multe prezent+ri
Controlerul
9 responsabil cu intr+rile
9 ascult+ evenimente de tastatur+ si mouse
9 instruie8te modelul sau prezentarea s+ se modifice ca atare
9 ex. un caracter este inserat .n string-ul text
9 un controler are numai un model 8i o prezentare
%ealitatea: 6eg+tura str2ns+ dintre prezentare 8i controler
9 0;$ a fost .nlocuit de 0; (0odel-;iew)
9 o prezentare reutilizabil+ controleaz+ at2t intrarea c2t 8i ie8irea
9 mai este denumit+ si component+
9 controlere reutilizabile sunt rare
9 !c:iunile .n @ava (wing: obiecte aflate .n spatele componentelor meniurilor,
butoanele din toolbar, sau scurt+turile de la tastatur+.
9 ex. cut, copA, paste, delete
4n principiu, este o idee bun+ s+ separ+m intrarea de ie8ire .n clase separate reutilizabile.
4n realitate .ns+, nu prea este posibil, deoarece intrare 8i ie8irea sunt str2ns legate .ntre
ele.
Drept urmare, modelul M)C a trebuit s+ fie .nlocuit de ceea ce se poate numi Model(
)iew, unde prezentarea 8i controlerul sunt cuplate .ntr-o singur+ clas+, numit+
component+ (component) sau widget.
)iew ,ierarc&- *ierar&ia prezentarilor+
9 views sunt aran"ate .n ierar#ie
9 containerele
9 window, panel, ric# text widget
9 componentele
9 canvas, button, label, textbox
9 containerele sunt de asemenea componente
9 fiecare sistem '%I are o ierar#ie de view 8i aceasta e folosit+ .n diferite moduri
9 ie8ire
9 intrare
9 laAout
'
Metaforele Dezvolatarea unei interfete utilizator a carui model program se potriveste cu
modelul utilizator nu este intotdeauna usoara. %neori, utilizatorii s-ar putea sa nu aibe o
perspective concreta despre modul in care programul functioneaza si despre ceea ce ar
trebui sa faca.In aceate cazuri va trebui sa gasesti cai de a-I oferi utilizatorului indicii
despre cum functioneaza aplicatia.In interfetele grafice, o metoda obisnuita de a rezolva
aceasta problema este folosirea metaforelor.%na dintre cele mai faimoase metafore este
metafora des5top folosita in Bindows si 0acintos#.6upa este o metafora din lumea
reala.O metafora, c#iar si una imperfecta, functioneaza mult mai bine decat daca nu
avem una deloc.
Design centrat pe utilizator
.aterfall model - consta dintr-o secventa de stari, fiecare stare include cate o validare -
principiul gandeste si apoi scrie cod, /eedbac5 intre stari - 1% 3(*3 C%1 )31*7%
D3(I'1 %I
Modelul Cascada 0odelul cascada, este unul dintre primele procedee de design pentru
desvoltarea de software.0odeleaza procesul de design ca o secventa de etape. /ieare
etapa rezulta intr-un produs concret (un document de cerinte, un design, un det de
module de cod) care va fi folosit apoi la urmatoarea etapa. /iecare etapa include de
asemenea propia validare: designul este validat cu cerintele, codul este validat conform
designuluiD
$ea mai mare imbunatatire pe care modelul cascada il aduce in dezvoltatea de software
fata de modelele precedente (#aotice) este disciplina pe care o impune programatorulor
aceea de a gandi intai si apoi de a scrie cod. $erintele si designul preced in general
prima linie de cod.In productie, un dezvoltator de software are in atributiile de serviciu
nu numai scrierea de cod ci si identificarea cerintelor.
Iterative design - Ofera o cale de a controla ris5-ul ce poate aparea in %I D3(I'1.
D3(I'1 -E I0)63031* -E 3;!6%!*3... 1ici asta nu e c#iar buna.Designul
iterativ este o parte extreme de importanta a designului centrat pe utilizator (process
de design al interfetelor utilizator larg raspandit in randurile designerilor de %I). 3xista
o intreaga varietate de te#nici de design bazat pe utilizator (ex: '%ID3, (*%DIO,
O;ID,6%$ID). Dar ma"oritatea au trei caracteristici in comun:
- Designul iterativ pentru crearea de prototipuri rapide (rapid prototAping)
- 6ocalizarea timpurie pe utilizatori si tas5urile lor
- 3valuarea continua la fiecare iteratie in procesul de design.
Spiral design - 0odelul spiralat ofera rezolvarea acesei dileme. 6uam in calcul cateva
iteratii in procesul nostru de design, si iteram astfel incat primele iteratii sa fie cat mai
ieftine cu putiinta.
Dimensiunea radial a nodelului spiralat, corespunde costului fiecarei etape a iteratiei
(sau ec#ivalent, ar putea corespunde fidelitatii sau acuratetii). De exemplu
implementarea de inceput ar putea fi sc#ita pe #artie sau mac#eta. !re acuratete redusa,
reprezinta doar o umbra a ceea ce ar trebui sa devina si se comporta ca un software
interactive. Dar este extrem de ieftin de realizat, si o putem evalua aratand si intreband
utilizatorii despre ea.

S-ar putea să vă placă și