oop11_JavaFX

Embed Size (px)

Citation preview

  • 8/16/2019 oop11_JavaFX

    1/16

  • 8/16/2019 oop11_JavaFX

    2/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    3 javafx.application.Application

    'ava/0 aplikacije nasleđuju apstraktnu klasu javafx.application.Application kojaomogu*uje 1ivotni ciklus aplikacijama- kroz funkcije kao ,to su pokretanje i zaustavljanje. =vaklasa takođe omogu*uje bezbedno pokretanje #$% komponenti u vi,enitnom okru1enju.

    $ metodu main() poziva se metod Application.launch() za pokretanje 'ava/0 aplikacije iprosleđuju mu se eventualni argumenti komandne linije.%nterno se- od strane 'ava/0 okru1enja- izvr,avaju slede*e akcije nakon pokretanja aplikacije>

    • pravi se instanca klase koja predstavlja aplikaciju• poziva se metod init()• poziva se metod start(javafx.stage.Stage) • čeka se da se aplikacija zavr,i- ,to se signalizira na dva načina>

    ◦ aplikacija poziva metodPlatform.exit()◦ poslednji prozor je zatvoren i atributimplicitExit za Platform je postavljen na

    true•

    poziv metoda stop()

    ?etod start() je apstraktan i mora da bude predefinisan@?etodi init() i stop() nisu apstraktni- ali su definisani tako da ne rade ni,ta.

    Parametri aplikacije mogu se dobiti pozivom metodagetParameters() u okviru metodainit() ili nakon ,to se metod init() zavr,i.

    'ava/0 pravi posebnu nit ( JavaFX Application hrea! " u okviru koje se pokre*estart metod-procesiraju događaji ili pokre*u animacije. Pravljenje 'ava/0 Scene iliStage objekata- kao imodifikacija operacija nad objektima koji su deo scene- ?=RA da se vr,i u okviru ove niti.

    Poziv konstruktora za aplikaciju i metodainit vr,i se u drugoj niti (launcher threa! ". %z tograzloga aplikacija +< 4?< da pravi objekte klasa Scene iliStage u okviru konstruktora ilimetoda init . ozvoljeno je da se u metodu init prave drugi 'ava/0 objekti.

    Napomena:?etod main(" nije potreban ukoliko se za 'ava/0 aplikaciju generi,e 'AR datoteka pomo*u alataJavaFX Packager - koji ugrađuje launcher nit u 'AR datoteku.

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 application Application.html

    4 javafx.application. latfor!

    5lasa koja opisuje platformu 'ava/0 aplikacije. efinisana je sa ključnom rečju final i sadr1isamo statičke metode.

    Metod exit() Ako se pozove nakon metoda start - JavaFX launcher nit poziva metod stop i zaustavljaizvr,avanje JavaFX aplikativne niti. +akon toga se i launcher nit zavr,ava. Ako nemadrugih aktivnih (non-daemon - koje nisu samopozivaju*e" niti- 'ava )? takođe zavr,ava.

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/application/Application.html#start(javafx.stage.Stage)http://docs.oracle.com/javafx/2/api/javafx/application/Application.html#start(javafx.stage.Stage)http://docs.oracle.com/javafx/2/api/javafx/application/Platform.html#exit()http://docs.oracle.com/javafx/2/api/javafx/application/Application.htmlhttp://docs.oracle.com/javafx/2/api/javafx/application/Platform.html#exit()http://docs.oracle.com/javafx/2/api/javafx/application/Application.htmlhttp://docs.oracle.com/javafx/2/api/javafx/application/Application.html#start(javafx.stage.Stage)

  • 8/16/2019 oop11_JavaFX

    3/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    $koliko se aplikacija pokre*e kao deo veb&strane- poziv metoda mo1e biti bez efekta.

    Metod runLater(java.lang.Runnable runnable)

    Pokre*e se nova nit- zadata kao argument metoda (klasa koja defini,e nit implementira interfejsunna!le " u nekom trenutku koji se ne mo1e unapred predvideti. +it se sme,ta u red (event

    Bueue" niti za obradu događaja- tako da se niti izvr,avaju onim redom kojim su pristizale u red.?etod run() kojim se nit izvr,ava- pokre*e se u okviru 'ava/0 aplikativne niti.

    Metod isFxApplicationT read()

    )ra*a true ukoliko je pozivaju*a nit upravo 'ava/0 aplikativna nit. 5oristi se za proveru da li seneka operacija izvr,ava u okviru aplikativne niti.

    Metod set!"plicit#xit(boolean)

    Postavlja se atributimplicitExit

    na datu vrednost. Ako je atributtrue

    - kada se poslednjiprozor aplikacije zatvori- 'ava/0 launcher nit poziva "pplication.stop() metod kojizaustavlja aplikativnu nit. Ako je atributfalse - aplikacija je aktivna i nakon zatvaranja poslednjegprozora- sve dok se eksplicitno ne pozove metod exit() .Podrazumevana vrednost atributa je true .

    Metod is!"plicit#xit() )ra*a vrednost atributa implicitExit .

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 application Platform.html

    " javafx.stage.#tage

    +akon poziva metoda start()" na raspolaganju je 'ava/0 objekat #tage (javafx.stage.#tage) zadalje rukovanje.

    5reatori 'ava/0 AP%&ja su organizovali prikaz grafičkog korisničkog interfejsa slično pozori,tu-gde se predstava igra na bini ispred publike.

    2bog toga se na jednoj bini (#tage "- mo1e postaviti ve*i broj scena#cene (javafx.scene.#cene) -na kojima se odigravaju CpredstaveD.

    =bjekat Stage iz 'ava/0 je ekvivalentan prozorima aplikacije ( JFrame iliJ#ialog " koji su se

    koristili u 'ava 4 ing AP%.=snovna pozornica (primar7 4tage" pravi se od strane platforme. 4ama aplikacija mo1e da pravi idodatne pozornice (u okviru aplikativne niti".

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/application/Platform.htmlhttp://docs.oracle.com/javafx/2/api/javafx/application/Platform.html

  • 8/16/2019 oop11_JavaFX

    4/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    $tilovi po%ornice• StageSt$le.#E%& "'E# bela pozadina- sa dekoracijom (okvir- ikone u gornjem

    desnom uglu za zatvaranje prozora- minimizaciju i maksimizaciju- ikona u gornjem levomuglu" koja zavisi od platforme

    • StageSt$le. *#E%& "'E# bela pozadina- bez dekoracije• StageSt$le.' "*SP" E*' transparentna pozadina- bez dekoracije• StageSt$le. '+,+'- E bela pozadina i minimalna dekoracija (okvir i ikona za

    zatvaranje prozora"

    4til mora biti postavljen pre prikazivanja pozornice.

    &lasnik po%ornice

    Pozornica opciono mo1e imati prozor ( javafx.stage.$in!ow " koji je njen vlasnik- tj. roditelj. 5adase roditeljski prozor zatvori- sva deca&prozori se automatski zatvaraju. Pozornica je uvek na vrhusvog roditeljskog prozora. )lasnik pozornice mora biti inicijalizovan pre njenog prikazivanja.

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 stage 4tage.html

    $ javafx.scene.#cene

    Pozornica (bina" 'ava/0 aplikacije sadr1i jednu ili vi,e scena.=bjekat klase #cene mo1e da se posmatra kao okvir za sadr1aj (content pane".4adr1aj scene je predstavljen kao graf sa proizvoljnim brojem čvorova E objekata tipa%o!e(javafx.scene.%o!e) .

    *o e je osnovna klasa čvorova grafa scene. Fvorovi mogu da budu> UI &ontrole (dugmad-

    labele- tekstualna polja"-Shape o'je&ti - sli&e i drugo- koji zajedno čine korisnički interfejs.#raf scene je drvolika struktura. Aplikacija mora da zada koreni čvor (root+ode" grafa scenepostavljanjem parametra root .

    Ako se kao koreni čvor koristi objekat klase/roup - raspored objekata na sceni ne*e biti naru,enpromenom veličine scene (npr kada korisnik promeni veličinu bine".

    Ako se kao koreni čvor postavi objekat koji je CresizableD (nprla$out čvor"- njegova veličina semenja sa promenom veličine scene.5oreni čvor ne mo1e biti null.

    )eličina scene mo1e da se zada prilikom pravljenja scene. $ suprotnom- veličina scene seprilagođava samom sadr1aju.

    4cene se prave u okviru aplikativne niti.+akon dodavanja čvorova- scena se postavlja na binu i poziva se metod show() za prikaz bine(prozora aplikacije".

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.html#UNDECORATEDhttp://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.html#TRANSPARENThttp://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.html#UTILITYhttp://docs.oracle.com/javafx/2/api/javafx/stage/Stage.htmlhttp://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.html#UNDECORATEDhttp://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.html#TRANSPARENThttp://docs.oracle.com/javafx/2/api/javafx/stage/StageStyle.html#UTILITYhttp://docs.oracle.com/javafx/2/api/javafx/stage/Stage.html

  • 8/16/2019 oop11_JavaFX

    5/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    Atributi (de'inisani kao public 'inal)

    • cursor E defini,e izgled kursora za scenu. ?etodi> get%ursor() -set%ursor(%ursor)

    • fill E defini,e popunjavanje pozadine scene. Ako je null - prva mogu*nost je da seni,ta ne iscrtava na pozadini- a druga da je podr1ano transparentno iscrtavanje- ali ,ta *ese tačno prikazati- zavisi od platforme. Podrazumevana vrednost je 0E," boja. ?etodi>getFill() - setFill(Paint)

    • height E visina scene. ?etod> get1eight() • root E defini,e koreni čvor grafa scene. ?etodi> getRoot("- setRoot(Parent"• wi th E ,irina scene. ?etod> get2i th()• win ow E prozor (Windo " koji sadr1i scenu. ?etod>get2in ow()• x E horizontalna lokacija scene na prozoru. ?etod> getX()• $ E vertikalna lokacija scene na prozoru. ?etod>get-()• G

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene 4cene.html

    % javafx.scene.&o'e

    :azna klasa za predstavljanje čvorova grafa scene.

    #raf scene je drvoliki skup podataka u kome svaki čvor ima nula ili jednog roditelja i svaki čvor jeili ClistD (leaf node " sa nula dece ili CgranaD (branch node " sa nula ili vi,e dece.

    $ svakom drvetu koje predstavlja graf scene postoji samo jedan čvor koji nema roditelja. =n senaziva čvor koren E Croot D.

    'ava/0 AP% defini,e klase koje opisuju objekte koji se mogu pona,ati kao koreni čvorovi- listovi iligrane. Primer upotrebe konkretnih klasa za odgovaraju*e čvorove prikazan je na narednoj slici.

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/scene/Scene.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/Scene.html

  • 8/16/2019 oop11_JavaFX

    6/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    4vaki čvor je tipa +ode ili neke njene potklase.

    Fvorovi&grane su specifično tipa javafx.scene. arent čije su potklase Group - egion (defini,edeo ekrana na čiju se decu mogu primeniti stilovi pomo*u H44&a" i *ontrol .

    Fvorovi&listovi su specifično tipaectangle - *ircle - ext - Image+iew - ,e!ia+iew ili bilo kojedruge klase koja opisuje čvor koji ne mo1e da ima dece.

    ?o1e biti vi,e drveta u okviru grafa scene- pri čemu mogu da postoje i ona koja nisu deo nijednescene. Fvor mo1e da se javlja najvi,e jednom bilo gde u grafu.#raf scene ne sme da sadr1i cikluse- tj. jedan čvor ne sme sam sebi da bude roditelj.

    Ako aplikacija doda čvor u Parent objekat (uključuju*i #roup- Region objekat itd."- pri čemu je tajčvor ve* dete drugog Parent objekta ili je koren 4cene objekta- čvor se automatski uklanja sasvoje prethodne lokacije i dodaje.

    4truktura grafa mo1e da se menja E na primer- poddrvo mo1e da se premesti na drugu lokaciju u

    grafu. a bi se ovo postiglo- dovoljno je samo umetnuti poddrvo na novu lokaciju- automatski *ese izvr,iti uklanjanje sa stare.

    Fvorovi mogu da se prave i modifikuju u bilo kojoj niti pre nego ,to budu postavljeni na scenu.Postavljanje čvorova na scenu ili izmena postoje*ih čvorova na sceni- vr,i se u okviru niti 'ava/0

    Application.

    $tirng ! %a *vor

    4vakom čvoru u grafu mo1e biti dodeljen jedinstvenii . Programer je taj koji se stara dadodeljeni id bude jedinstven u grafu. ?etod loo&up(#tring) mo1e da se koristi za pronala1enječvora sa datim id&em u okviru grafa ili u okviru poddrveta grafa. % čvora je sličan atributu CidDI!?J taga.

    +oordinatni siste"

    5oordinatni sistem je standardno postavljen E vrednosti du1 3&ose rastu sleva u desno- avrednosti du1 7&ose odozgo nani1e.5onkretna klasa koja opisuje određenu vrstu čvora ima atribute za opis dimenzije i lokacije čvora.+a primer- klasa ectangle ima atribute x3 $3 wi th i height.

    5ada se posmatra na nivou piksela- celobrojne koordinate odgovaraju uglovima i postavljene suizmeđu piksela. Hentar svakog piksela se onda nalazi na sredini rastojanja između dve susednecelobrojne koordinate.)rednosti koordinata zadate su kao realni brojevi- tako da mogu da se odnose na bilo kojupoziciju u okviru piksela. )ideti narednu sliku.

    Objektno orijentisano programiranje

  • 8/16/2019 oop11_JavaFX

    7/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    5lasa javafx.scene.shape.Shape opisuje dodatne infromacije vezane za mapiranjekoordinata.

    Trans'or"acije *vorova

    +ad bilo kojim čvorom mogu se primeniti transformacije> translacija- rotacija- skaliranje iliodsecanje.

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene +ode.html

    ( javafx.scene. arent

    :azna klasa (apstraktna" za sve čvorove grafa scene koji mogu da imaju decu.

    =va klasa upravlja svim hijerarhijskim operacijama grafa scene- uključuju*i dodavanje uklanjanjedece čvorova itd.

    %ma tri direktne podklase>• Group E efekti i transformacije koji *e se primenjivati na kolekciju čvorova dece• egion E povr,ina ekrana koja mo1e da sadr1i i druge čvorove i da bude stilizovana

    kori,*enjem H44&a• *ontrol E klasa na visokom nivou za čvorove namenjene za interakciju korisnika

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene Parent.html

    ) javafx.scene.Gro*p

    Fvor- objekat klase #roup- sadr1i listu (&!serva!le,ist " čvorova&dece.)eličina grupe ne mo1e direktno da se menja (grupa preuzima zajedničke granice shodnočvorovima&deci koje sadr1i".:ilo koja transformacija primenjena na grupu- primenjuje se na svu decu. !ransformacije i efektine*e biti primenjeni na postavljeni la7out za grupu- osim ako se ne primene direktno nad decom.

    1+ javafx.scene.paint. olor

    $tandardni konstruktor

    Color(double red, double green, double blue, double opacity)

    re 3 green3 !lue3 opacit$ pripadaju intervalu K &L.K.opacit$ predstavlja stepen neprozirnosti (K E boja je potpuno transparentna- L.K E boja jepotpuno neprozirna".

    Metod ,olor.color()%olor c 4 %olor.color(53536.5)7 88 plava3 alpha je implicitno 6.5%olor c 4 %olor.color(53536.536.5)7 88 plava3 alpha je eksplicitno 6.5

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/scene/Node.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/Parent.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/Node.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/Parent.html

  • 8/16/2019 oop11_JavaFX

    8/16

  • 8/16/2019 oop11_JavaFX

    9/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    J%#I!#RAN (L -L -L "=RA+#< ( MM- KK-K"#RAN (L Q-L Q-L Q"

    N• 'righter() & uve*ava intenzitet komponenti boje za predefinisani faktor • !ar&er() & smanjuje intenzitet komponenti boje za predefinisani faktor

    boja.brighter(); boja.dar er();

    itniji "etodi klase ,olor

    get e!()" getGreen()" get-lue() E vra*aju komponente boje

    e uals() E za poređenje boja na jednakost komponenti

    deriveColor (double hueShift, double saturation!actor, double brightness!actor, double opacity!actor) E pravi novu boju na osnovu postoje*e tako

    ,to se nijansa pomera za datu vrednost- dok se ostale komponente mno1e datim vrednostima ipotom normalizuju u svom dozvoljenom opsegu.

    !esaturate() & pravi novu boju koja je manje zasi*ena od teku*e

    saturate() & pravi novu boju vi,e zasi*enu od teku*e

    invert() & pravi novu boju koja je inverzija teku*e boje

    value/f(#tring) E pravi boju na osnovu 4tring&reprezentacijeto#tring() & vra*a 4tring&reprezentaciju boje (koristi se samo u informativne svrhe". /ormatstringa mo1e da varira.

    2a dodatne informacije pogledati>http> docs.oracle.com javaf3 api javaf3 scene paint Holor.html

    11 javafx.scene. *rsor

    5lasa %ursor defini,e static konstante koje određuju standardne tipove kursora.Primer>HJ=4< TIA+HR=44IA%R

  • 8/16/2019 oop11_JavaFX

    10/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    #tring to#tring() & vra*a 4tring&reprezentaciju kursora

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene Hursor.html

    12 javafx.scene.text.Font

    5lasa /ont je obimna- navodimo samo najbitnija svojstva.

    5lasa /ont pravi razliku između karaktera i glifa- tj. grafičke reprezentacije karaktera.Različiti fontovi defini,u različite glifove za jedan isti karakter.)eličina fonta zadaje se brojem piksela (L piksel U L O inča".

    +onstruktori

    Font(!ou'le si0e) 1 font zadate veličine predefinisanog izgleda C47stemDFont(java.lang.#tring name" !ou'le si0e) 1 font zadate veličine zadatog izgleda (face"V navodise puno ime za izgled fonta

    Metodi

    font(java.lang.#tring famil2" !ou'le si0e) 3 vra*a odgovaraju*i font na osnovu date familije iveličine

    font(java.lang.#tring famil2" Font osture posture" !ou'le si0e) 3 vra*a odgovaraju*i font naosnovu date familije i datog polo1aja (da li je font isko,en ili regularan".FontPosture jedefinisan kao tip enumeracije (+'",+%3 E/ ," "

    font (java.lang.#tring famil2" Font$eight weight" !ou'le si0e) 3 Cte1inaD fonta je predstavljenaenumerisanim tipom Font2eight (0,"%>3 0&,#3 EX' "?0&,#3 EX' "?,+/1'3 ,+/1'3@E#+ @3 *& @",3 SE@+?0&,#3 '1+* "

    font (java.lang.#tring famil2" Font osture posture" Font$eight weight" !ou'le si0e)

    get4efault() 1 vra*a podrazumevani font- koji je obično iz familije C47stemD- stil je najče,*eCRegularD- a veličina je saglasna sa okru1enjem

    getFamilies() & vra*a listu imena svih familija fontova instaliranih na datoj platformigetFont%ames() & vra*a listu imena svih fontova instaliranih na datoj platformigetFont%ames(#tring famil2) E vra*a listu imena svih fontova iz date familije fontova koji supodr1ani na platformiget%ame() & vra*a puno ime fontagetFamil2() & vra*a familiju teku*eg fontaget#t2le() E vra*a string koji opisuje stil fonta u okviru familijeget#i0e() E vra*a veličinu fonta

    etalji se mogu pogledati na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene te3t /ont.html

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/scene/Cursor.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/text/Font.html#font(java.lang.String,%20javafx.scene.text.FontWeight,%20double)http://docs.oracle.com/javafx/2/api/javafx/scene/text/Font.html#font(java.lang.String,%20javafx.scene.text.FontWeight,%20double)http://docs.oracle.com/javafx/2/api/javafx/scene/text/Font.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/Cursor.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/text/Font.html#font(java.lang.String,%20javafx.scene.text.FontWeight,%20double)http://docs.oracle.com/javafx/2/api/javafx/scene/text/Font.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/text/Font.html#font(java.lang.String,%20javafx.scene.text.FontWeight,%20double)

  • 8/16/2019 oop11_JavaFX

    11/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    13 -a o*t panes

    Ja7out pane za scenu određuje poziciju i veličinu svih čvorova na njoj i njime se zadaje izgledgrafičkog korisničkog interfejsa.

    5ako se menja veličina prozora- la7out pane automatski odgovara i menja veličinu čvorova kojesadr1i u skladu sa njihovim osobinama.

    'ava/0 sadr1i niz la7out klasa- koje se nalaze u paketu> javafx.scene.la2out5 • Anchor ane• -or!er ane• #tac& ane• 6-ox• +-ox• ile ane• Flow ane•

    Gri! ane Anc orPaneFvorovi deca se sidre po ivicama roditelja. )eličina čvorova dece ne mo1e da se menja.

    orderPanePovr,ina roditelja se deli na M oblasti E vrh- levo- desno- dno- centar. =blasti vrh i dno prostiru sedu1 cele ,irine- a visina odgovara zadatoj visini čvorova dece. =blasti levo i desno prostiru se du1preostale visine- a ,irina odgovara zadatoj ,irini čvorova dece. Hentralna oblast obuhvatapreostali prostor u sredini. :ilo koja oblast mo1e biti null. 4va pove*anja veličina vr,e se domaksimalne veličine čvora u relevantnom smeru.

    $tackPane

    Fvorovi deca se raspoređuju jedan iznad drugog- kao ,pil karata. 'edino je komponenta na Dvrhuvidljiva u bilo kom trenutku. )eličina čvorova dece se menja- tako da ispuni veličinu roditelja- uzpo,tovanje zadate maksimalne ,irine- odnosno visine za svaki čvor.

    /boxFvorovi deca se raspoređuju u jedan red. )eličina čvorova dece se pove*ava do njihove 1eljene,irine ( preferred widths "- ali postoji mogu*nost da se zada da se pojedini čvorovi decapove*avaju do njihove maksimalne zadate ,irine.

    &boxsličan I:o3&u- jedino ,to se čvorovi deca raspoređuju u jednu kolonu.

    Padding property upravlja rastojanjem između čvorova.Margine takođe mogu da se podese da bi

    se odredila veličina praznog prostora oko pojedinih čvorova. FlowPane

    odaju se komponente u sukcesivnim redovima E kad je red popunjen- počinje se sa novim.+ajče,*e se koristi za uređivanje dugmeta. )eličina čvorova dece ne mo1e da se menja.

    Objektno orijentisano programiranje

  • 8/16/2019 oop11_JavaFX

    12/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    TilePane

    4ličan kao FlowPane - jedino ,to se čvorovi deca sme,taju u mre1u u kojoj je svaka CpločicaD jednake veličine. Fvorovi deca mogu da budu postavljeni horizontalno (u redovima" ili vertikalno(u kolonama". )eličina čvorova dece menja se- tako da ispuni veličinu CpločiceD - uz po,tovanjezadate maksimalne ,irine i visine.

    -ridPane

    5omponente se raspoređuju u fleksibilnu pravougaonu mre1u. Promena veličine zavisi odograničenja zadatih za svaki red- odnosno kolonu- pojedinačno.

    14 Flow ane

    /lo Pane sme,ta čvorove decu u red- a kada se red napuni-automatski počinje sme,tanje u novi red.

    Podrazumevana pozicija reda sa komponentama je centar kontejnera- a podrazumevana orijentacija je s leva na desno.

    ?o1e se zadati podrazumevani razmak među komponentama.

    Primer je prikazan na slici.

    +onstruktori

    Flow ane() 3 kreira horizontalni /lo Pane sa horizontalnim ivertikalnim razmakom K (hgap vgap U K"

    Flow ane(!ou'le hgap" !ou'le vgap) E kreira horizontalni/lo Pane sa zadatim hgap i vgap

    Flow ane(/rientation orientation) E kreira /lo Pane zadateorijentacije sa horizontalnim i vertikalnim razmakom K(hgap vgap U K"

    Flow ane(/rientation orientation" !ou'le hgap" !ou'levgap) E kreira /lo Pane zadate orijentacije sa zadatim hgap ivgap.

    Pri"er ori%ontalnog FlowPane1a

    +mage imagesAB 4 C ... D7

    FlowPane flow 4 new FlowPane()7flow.set gap( )7flow.set1gap(G)7flow.setPref2rap,ength(H55)7 88 =eljena sirina 4 H55for (int i 4 57 i I images.length7 i ) C

    flow.get%hil ren().a (new +mage iew(imageAiB)7D

    Objektno orijentisano programiranje

  • 8/16/2019 oop11_JavaFX

    13/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    Pri"er vertikalnog FlowPane1a

    FlowPane flow 4 new FlowPane(&rientation. E '+%",)7flow.set%olumn1alignment(1Pos.,EF')7 88 poravnanje elemenataK levo

    flow.setPref2rap,ength(955)7 88 =eljena visina 4 955for (int i 4 57 i I titles.si=e()7 i ) Cflow.get%hil ren().a (new ,a!el(titlesAiB)7

    D

    etalji na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene la7out /lo Pane.html

    1" /or'er ane

    5omponente raspoređene u :orderPane se ,ire tako da popune raspolo1iv prostor u kontejneru.:ilo koja pozicija mo1e da bude null.

    Pozadina i ivice :orderPane&a mogu da budu stilizovane H44&om.

    +onstruktor :orderPane("

    Pri"er

    0or erPane !or erpane 4 new 0or erPane()7'ool0ar tool!ar 4 new 'ool0ar()710ox status!ar 4 new 10ox()7*o e app%ontent 4 new "pp%ontent*o e()7!or erPane.set'op(tool!ar)7!or erPane.set%enter(app%ontent)7!or erPane.set0ottom(status!ar)7 etalji na lokaciji>http> docs.oracle.com javaf3 api javaf3 scene la7out :orderPane.html

    1$ Gri' ane

    #ridPane raspoređuje čvorove u fleksibilnu pravougaonu mre1u.Fvorovi mogu da budu sme,teni u bilo koju *eliju u mre1i. ?re1a je korisna za upotrebu kada sečvorovi raspoređuju u redove i kolone.

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/scene/layout/FlowPane.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/layout/BorderPane.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/layout/FlowPane.htmlhttp://docs.oracle.com/javafx/2/api/javafx/scene/layout/BorderPane.html

  • 8/16/2019 oop11_JavaFX

    14/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    +onstruktorGri! ane()

    Pri"er

    /ri Pane gri pane 4 new /ri Pane()7

    88 Postavljanje je ne po je ne oso!ine...0utton !utton 4 new 0utton()788 ugme se postavlja u re sa in eksom 6 ( rugi re )..."rid#ane.set$ow%ndex(button, &); 88 ...i kolonu sa in eksom 9 (treca kolona)"rid#ane.setColu'n%ndex(button, );

    88 Postavljanje svih o je nom,a!el la!el 4 new ,a!el()7/ri Pane.set%onstraints(la!el3 H3 6)7 88 kolona 4 H re 4 688 o!ave=no je postaviti ecu na /ri Panegridpane.getChildren().addAll(button, label);

    88 @oguce je uje no o re iti po=icije i postaviti ecuK/ri Pane gri pane 4 new /ri Pane()7gridpane.add(new utton(), , &); 88 kolona49 re 46

    gridpane.add(new *abel(), +, &); 88 kolona4H re 46

    1% aket javafx.geo!etr 0 ijerar ija klasa

    =bezbeđuje skup klasa za definisanje i obavljanje operacija nad objektima udvodimenzionalnoj geometriji>

    • javaf3.geometr7.-oun!ing-ox-uil!er7-8 (implements javaf3.util.:uilder6!8"• javaf3.geometr7.-oun!s• javaf3.geometr7.-oun!ing-ox• javaf3.geometr7.4imension94• javaf3.geometr7.4imension94-uil!er7-8 (implements javaf3.util.:uilder6!8"• javaf3.geometr7.Insets• javaf3.geometr7.Insets-uil!er7-8 (implements javaf3.util.:uilder6!8"

    • javaf3.geometr7. oint94• javaf3.geometr7. oint94-uil!er7-8 (implements javaf3.util.:uilder6!8"• javaf3.geometr7. oint:4• javaf3.geometr7. oint:4-uil!er7-8 (implements javaf3.util.:uilder6!8"

    Objektno orijentisano programiranje

  • 8/16/2019 oop11_JavaFX

    15/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    • javaf3.geometr7. ectangle94• javaf3.geometr7. ectangle94-uil!er7-8 (implements javaf3.util.:uilder6!8"

    1( aket javafx.geo!etr 0 ijerar ija en*!eracija

    • javaf3.geometr7.+ os• javaf3.geometr7.+ertical4irection• javaf3.geometr7.#i!e• javaf3.geometr7. os• javaf3.geometr7./rientation• javaf3.geometr7.6 os• javaf3.geometr7.6ori0ontal4irection

    etalji na lokaciji>http> docs.oracle.com javaf3 api javaf3 geometr7 package&summar7.html

    1) javafx.geo!etr . os

    4kup vrednosti za opisivanje vertikalnog i horizontalnog pozicioniranja i poravnanja>• 0"SE,+*E?%E*'E 3 0"SE,+*E?,EF'3 0"SE,+*E? +/1'• 0&''&@?%E*'E 3 0&''&@?,EF'3 0&''&@? +/1'• %E*'E 3 %E*'E ?,EF'3 %E*'E ? +/1'• '&P?%E*'E 3 '&P?,EF'3 '&P? +/1'

    Metodi

    6 os get6pos() E vra*a horizontalnu poziciju poravnanje+ os get+pos() E vra*a vertikalnu poziciju poravnanjestatic os value/f(java.lang.#tring name) E vra*a enum konstantu zadatu imenom namestatic os;< values() E vra*a niz konstanti enumeracije- redom kojim su deklarisane

    http> docs.oracle.com javaf3 api javaf3 geometr7 Pos.html

    2+ javafx.geo!etr . os

    4kup vrednosti za opisivanje horizontalnog pozicioniranja i poravnavanja>• %E*'E• ,EF'• +/1'

    Metodi

    static 6 os value/f(java.lang.#tring name)static 6 os;< values()

    http> docs.oracle.com javaf3 api javaf3 geometr7 IPos.html

    Objektno orijentisano programiranje

    http://docs.oracle.com/javafx/2/api/javafx/geometry/package-summary.htmlhttp://docs.oracle.com/javafx/2/api/javafx/geometry/Pos.htmlhttp://docs.oracle.com/javafx/2/api/javafx/geometry/HPos.htmlhttp://docs.oracle.com/javafx/2/api/javafx/geometry/package-summary.htmlhttp://docs.oracle.com/javafx/2/api/javafx/geometry/Pos.htmlhttp://docs.oracle.com/javafx/2/api/javafx/geometry/HPos.html

  • 8/16/2019 oop11_JavaFX

    16/16

    Grafički korisnički interfejs u Javi. JavaFX API.

    21 javafx.geo!etr . os

    4kup vrednosti za opisivanje vertikalnog pozicioniranja i poravnavanja>• 0"SE,+*E• 0&''&@• %E*'E• '&P

    Metodi

    static + os value/f(java.lang.#tring name)static + os;< values()

    http> docs.oracle.com javaf3 api javaf3 geometr7 )Pos.html

    22 javafx.geo!etr . rientation

    =dređivanje horizontalne i vertikalne orijentacije>• I=R%2=+!AJ (horizontalna Clevo E desnoD ili Cdesno & levoD orijentacija"• )