oop11_javafx
Post on 05-Jul-2018
216 Views
Preview:
TRANSCRIPT
-
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"• )
top related