Download - GUI - Komponente
-
8/17/2019 GUI - Komponente
1/33
GUI - KomponenteGUI - Komponente
Bojan Tomić
-
8/17/2019 GUI - Komponente
2/33
GUI KomponenteGUI Komponente
● Svaki deo grafičkog interfejsa je implementirankao klasa paketa “javax.s ing!
● Svaka od ovi" klasa ima svoj# grafičk#
repre$enta%ij# i na$iva se “grafičkakomponenta!● &ve klase imaj# mnogo $ajednički" atri'#ta ali
svaka ima i neke pose'ne● Kada se dodaj# na pro$or ()*rame+,
komponente se najče će implementiraj# kaoatri'#ti klase koja predstavlja pro$or
-
8/17/2019 GUI - Komponente
3/33
) anel) anel
● &snovna klasa koja predstavlja pra$n#povr in# (panel+ na koj# se mog# stavitikomponente
●
/ontent ane je instan%a ) anel klase● Svaki panel mo0e imati svoj raspored
komponenti (1a2o#t manager+
-
8/17/2019 GUI - Komponente
4/33
)B#tton)B#tton
● Klasa koja predstavlja d#gme● 3eki od atri'#ta (propert2+ klase )B#tton s#● 'o#nds (x,2, idt","eig"t+
– x i 2 s# koordinate gornjeg levog ćo ka d#gmetaali relativne # odnos# na /ontent ane
– idt" i "eig"t s# d#0ina i visina komponentei$ra0ene # pikselima
● ena'led – tr#e - d#gme je aktivno i reag#je na doga4aje – false - d#gme nije aktivno-ne reag#je na doga4aje
-
8/17/2019 GUI - Komponente
5/33
)B#tton)B#tton
● font – predstavlja karakteristike fonta kojim će se ispisati
tekst na d#gmet# (npr. 5rial, Bold, 67+●
i%on – sl#0i $a postavljanje odre4ene ikone na d#gme
● "ori$ontal5lignment
– /83T89 - tekst i (event#alno+ ikona se pojavlj#j#na sredini d#gmeta - po "ori$ontalnoj osi – 18*T ili 185:I3G - tekst i (event#alno+ ikona se
pojavlj#j# #$ lev# ivi%# d#gmeta – 9IG;T ili T95I1I3G - pojavlj#j# se #$ desn# ivi%#
-
8/17/2019 GUI - Komponente
6/33
)B#tton)B#tton
● "ori$ontalText osition – 18*T ili 185:I3G - ako d#gme ima ikon#, tekst će
se ispisati sa leve strane ikone –
9IG;T ili T95I1I3G - tekst će se ispisati sa desnestrane ikone – /83T89 - tekst će se ispisati na sredini i to preko
ikone● lo%ation (x,2+
– x i 2 s# koordinate gornjeg levog ćo ka d#gmeta alirelativne # odnos# na /ontent ane
-
8/17/2019 GUI - Komponente
7/33
)B#tton)B#tton
● si$e ( idt", "eig"t+ – idt" - irina d#gmeta # pikselima (po < osi+ – "eig"t - visina d#gmeta # pikselima (po = osi+
● text – naslov koji je ispisan na d#gmet#
● toolTipText – tekst koji se ispi e korisnik# svaki p#t kad
poka$ivač mi a stavi preko d#gmeta a ne klikne nanjega
-
8/17/2019 GUI - Komponente
8/33
)B#tton)B#tton
● verti%al5lignment – /83T89 - tekst i (event#alno+ ikona se pojavlj#j#
na sredini d#gmeta - po vertikalnoj osi –
T& - tekst i (event#alno+ ikona se pojavlj#j# #$gornj# ivi%# d#gmeta – B&TT&> - pojavlj#j# se #$ donj# ivi%#
● verti%alText osition – T& - ako d#gme ima ikon#, tekst će se ispisati
i$nad ikone – B&TT&> - tekst će se ispisati ispod ikone –
/83T89 - tekst će se ispisati preko ikone
-
8/17/2019 GUI - Komponente
9/33
)B#tton)B#tton
● visi'le – tr#e - kada se ini%ijali$#je, d#gme je vidljivo – false - kada se ini%ijali$#je, d#gme nije vidljivo
● >noge komponente imaj# neke od ovi" atri'#tapa se neće ponovo navoditi i o'ja njavati već
će se samo navoditi i o'ja njavati pose'niatri'#ti (#koliko i" komponenta ima+
-
8/17/2019 GUI - Komponente
10/33
)1a'el)1a'el
● )1a'el klasa predstavlja la'el# kojamo0e imati i nek# slik# na se'#
● ri tome ova klasa nema nikakv#
pose'n# f#nk%ij# i sl#0i samo radiestetike● )1a'el nema neke pose'ne atri'#te
i #glavnom s# isti kao kod )B#tton
-
8/17/2019 GUI - Komponente
11/33
)/"e%kBox)/"e%kBox
● )/"e%kBox klasa predstavlja k#ći%# koja mo0eda se o$nači (%"e%k+.
● ored teksta, mo0e da ima i ikon#● ose'ni atri'#ti● sele%ted
– tr#e - k#ći%a je o$načena – false - k#ći%a nije o$načena
● 5ko se 0eli proveriti da li je k#ći%a o$načenapo$iva se isSele%ted metoda
-
8/17/2019 GUI - Komponente
12/33
)/"e%kBox)/"e%kBox
● 3e postoji ograničenje # smisl# 'roja o$načeni"komponenti
● )/"e%kBox se koristi kada je potre'no
omog#ćiti vi estr#ki i$'or op%ija (mo0e sei$a'rati vi e alternativa+
-
8/17/2019 GUI - Komponente
13/33
)9adioB#tton)9adioB#tton
● )9adioB#tton klasa tako4e predstavlja d#gmekoje mo0e da se o$nači (%"e%k+.
● ored teksta, mo0e da ima i ikon#● ose'ni atri'#ti● sele%ted
– tr#e - k#ći%a je o$načena – false - k#ći%a nije o$načena
● 5ko se 0eli proveriti da li je d#gme o$načenopo$iva se isSele%ted metoda
-
8/17/2019 GUI - Komponente
14/33
)9adioB#tton)9adioB#tton
● ?a ra$lik# od )/"e%kBox, ovde postojiograničenje # smisl# 'roja o$načeni"komponenti
●
)9adioB#tton se koristi kada je potre'noomog#ćiti i$'or samo jedne op%ije● U t# svr"# se koristi klasa
“javax.s ing.B#ttonGro#p!● 5ko gr#pa sadr0i vi e )9adioB#tton o'jekata,
mo0e 'iti o$načen samo jedan
-
8/17/2019 GUI - Komponente
15/33
)9adioB#tton)9adioB#tton
● Kreiranje gr#pe – B#ttonGro#p 'g @ ne B#ttonGro#p(+A
● :odavanje )9adioB#tton # gr#p# – 'g.add()9adioB#tton+A
-
8/17/2019 GUI - Komponente
16/33
)Text*ield)Text*ield
● )Text*ield klasa predstavlja polje $a #nospodatka # jednom red#
● ose'ni atri'#ti● text
– String - tekst koj se #nese # polje $a #nos● ?a pre#$imanje teksta se koristi metoda
“getText! a $a postavljanje teksta metoda“setText!
-
8/17/2019 GUI - Komponente
17/33
)Text*ield)Text*ield
● Tekst je # String format#, pa je često potre'nokonvertovanje # dr#ge formate
● ?a do#'le – :o#'le.parse:o#'le(String+A
● ?a int – Integer.parseInt(String+A
-
8/17/2019 GUI - Komponente
18/33
-
8/17/2019 GUI - Komponente
19/33
)Text5rea)Text5rea
● line rap – tr#e - tekst koji se #nese # polje 'iće a#tomatski
prelomljen # vi e redova –
false● rapSt2le ord
– tr#e - tekst koji se #nese # polje 'iće a#tomatskiprelomljen # vi e redova ali tako da se prenose %elereči
– false
-
8/17/2019 GUI - Komponente
20/33
)Text5rea)Text5rea
● ?a pre#$imanje teksta se koristi metoda“getText! a $a postavljanje teksta metoda“setText!
●
?a dodavanje teksta na kraj već postojećegteksta, mo0e da se koristi i metoda “append!● )Text5rea kao takav ne dola$i sa
komponentama $a skrolovanje teksta● 5ko tekst preva$i4e o'im komponente, ne
mo0e se pomeriti tako da se vidi
-
8/17/2019 GUI - Komponente
21/33
)Text5rea)Text5rea
● :a 'i se ovo otklonilo, potre'no je #raditisledećeC
– ostaviti prvo komponent# )S%roll ane na pro$or –
3a )S%roll ane postaviti )Text5rea● Kada se ovako #radi, komponenta će
a#tomatski #klj#čiti skrolovanje kada tekst '#depreva$i ao o'ime
Gl i i ()> #B )> #Gl i i ()> #B )> #
-
8/17/2019 GUI - Komponente
22/33
Glavni meni ()>en#Bar, )>en#,Glavni meni ()>en#Bar, )>en#,)>en#Item+)>en#Item+
-
8/17/2019 GUI - Komponente
23/33
)>en#Bar )>en#Bar
● Klasa koja predstavlja pravo#gaonik pri vr"#pro$ora # kome se nala$i glavni meni
● &'jekat ove klase pripada direktno pro$or# i ne
stavlja se na /ontent ane● ro$or mo0e da ima samo jedan )>en#Bar ● 3a )>en#Bar se dodaj# meniji ()>en#+
-
8/17/2019 GUI - Komponente
24/33
)>en#)>en#
● &va klasa predstavlja jedan padaj#ći meni #okvir# glavnog menija
● )>en#Bar mo0e da ima vi e )>en#
komponenti (npr. “*ile!, “8dit!, “Die !...+● Svaki )>en# mo0e sadr0ati jedn# ili vi e stavki
(klasa )>en#Item+
-
8/17/2019 GUI - Komponente
25/33
)>en#Item)>en#Item
● Stavka # okvir# padaj#ćeg menija (npr. “3e !,“&pen!, “8xit!...+
● Sve tri komponente mog# da sadr0e tekst i, po
potre'i, ikon#
-
8/17/2019 GUI - Komponente
26/33
)/om'oBox)/om'oBox
● Komponenta kojapredstavlja padaj#ć#list#
●
Koristi se kada jepotre'no ograničitikorisnika na odre4enikonačni sk#p op%ija
-
8/17/2019 GUI - Komponente
27/33
)/om'oBox)/om'oBox
● :odavanje stavki - metoda “addItem(&'je%t+!● Stavke liste mog# 'iti 'ilo koji o'jekti #klj#č#j#ći
i String● Kao tekst stavke će se ispisati ono to
“toString! metoda #netog o'jekta vrati kaovrednost
● “getSele%tedIndex(+! vraća redni 'roj stavkekoja je i$a'rana (-6 ako ni ta nije i$a'rano+
● “getSele%tedItem(+! vraća i$a'ran# stavk# kao%eo o'jekat
-
8/17/2019 GUI - Komponente
28/33
)1ist)1ist
● redstavlja o'ičn#list# stavki
● Koristi se sit#a%ijama
kada je potre'noprika$ati konačn#list# neki" odvojeni"entiteta ili op%ija
-
8/17/2019 GUI - Komponente
29/33
)1ist)1ist
● :odavanje stavki se vr i r#čno kori ćenjemmetode “set1ist:ata(&'je%tEF+! ili“set1ist:ata(De%tor+!
●
U prvom sl#čaj#, metodi se prosle4#je ni$ 'ilokakvi" o'jekata - svaki o'jekat će postatistavka
● U dr#gom sl#čaj#, metodi se prosle4#je o'jekatklase De%tor koji # se'i sadr0i ni$ o'jekata
-
8/17/2019 GUI - Komponente
30/33
)1ist)1ist
● “getSele%tedIndex(+! vraća redni 'roj stavkekoja je i$a'rana (-6 ako ni ta nije i$a'rano+
● “getSele%tedDal#e(+! vraća i$a'ran# stavk# kao
%eo o'jekat
-
8/17/2019 GUI - Komponente
31/33
)1ist)1ist
● )1ist nema op%ij# $a skrolovanje teksta (sličnokao )Text5rea+, pa je potre'no #raditi sledećeC
– ostaviti prvo komponent# )S%roll ane na pro$or –
3a )S%roll ane postaviti )1ist● Kada se ovako #radi, komponenta će
a#tomatski #klj#čiti skrolovanje kada tekst '#depreva$i ao o'ime
-
8/17/2019 GUI - Komponente
32/33
)Ta''ed ane)Ta''ed ane
● Klasa koja predstavlja vi e panela sa je$ič%ima● Svaki je$ičak ima svoj naslov (op%iono i ikoni%#+
i ve$an je tačno $a jedan panel () anel+● Svaki panel mo0e imati ra$ličite komponente● U svakom tren#tk# je vidljiv samo jedan panel
) d
-
8/17/2019 GUI - Komponente
33/33
)Ta''ed ane)Ta''ed ane
● >etoda koja vraća redni 'roj tren#tnoi$a'ranog je$ička (-6 ako nijedan nije i$a'ran+
getSelectedIndex()
● &va komponenta se koristi ako je na istompro$or# potre'no prika$ati veliki 'rojkomponenti ali koje se mog# podeliti # vi egr#pa.