GUI - Komponente

Embed Size (px)

Citation preview

  • 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.