Do th i gian và trình có h n nên không th không tránh kh#i sai sót... NetBeans IDE for JavaFX r't d dàng s0 d ng nó bao g+m c JavaFX SDK và r't nhi u các ví d c% b n.Ngoài ra NetBeans ed
Trang 1à N ng, 10/2009
I H C À N NG
KHOA CÔNG NGH THÔNG TIN
TH C T P NH N TH C JAVA
NGHIÊN C U CÔNG NGH
JAVAFX TRONG JAVA
Giáo viên h ng d n : Th.S TR NH CÔNG DUY
Sinh viên th c hi n : Nguy n Thanh Xuân
L p : 06T1
Nhóm th c hành : 11A
Trang 2M C L C
M C L C 1
M U 2
Tìm hi u JavaFX và vi t ng d ng DEMO 3
I GI I THI U CÔNG NGH JAVAFX 3
1 T ng quan 3
2 Lý do ch n JavaFX 3
3 Nh ng c i m n i b t c a JavaFX 3
4 N n t ng c a JavaFX 5
5 Công c phát tri n 6
II U VÀ NH C I M C!A JavaFX SO V I CÁC CÔNG NGH KHÁC 7
1 Flex và AIR c a Adobe 7
2 Silverlight c a Microsoft 7
3 u và nh "c i m c a JavaFX so v i các công ngh trên 8
4 B ng so sánh các công ngh m i 9
III CÀI #T TRÌNH BIÊN D CH 9
1 B c 1: T i v và cài t JDK 9
2 B c 2: L a ch n môi tr $ng phát tri n ng d ng 9
3 B c 3: T i v và cài t trình biên d%ch, môi tr $ng th c thi 9
IV &NG D NG MINH H A VÀ DEMO CH 'NG TRÌNH 10
1 L p Key "c th(a k) t( l p CustomNode là l p có s*n c a JavaFX 10
2 L p FXCalculator c+ng "c th(a k) t( l p CustomNode 10
3 Hàm Main 10
4 Demo ch ,ng trình 11
K T LU N 12
1 u i m 12
2 Nh "c i m 12
Trang 3M- U
Cùng v i Flash/Flex c a Adobe System, Silverlight c a Microsoft thì JavaFX
c a Sun t o m t n n t ng các nhà phát tri n t o ra các ng d ng tích h p c hình
nh, âm thanh, video, d ch v Web,… và phân ph i chúng thông qua môi tr ng Internet Các ng d ng Web m nh m c v tính n ng và giao di n ng i dùng này
c g i cung v i thu t ng! RIA (Rich Internet Application, hay Rich Interactive Application v i Microsoft) Các ng d ng này có th ch y nh m t ng d ng c l p ho"c ch y bên trong trình duy t web, th m chí c trên các thi t b di ng hay TV
Chính vì lý do ó nên em ch n tài nghiên c u v công ngh JavaFX này Do
th i gian và trình có h n nên không th không tránh kh#i sai sót Mong th$y cô và các b n góp ý Em xin chân thành c m %n
Trang 4Tìm hi u JavaFX và vi)t ng d ng DEMO
I GI I THI U CÔNG NGH JAVAFX
1 T ng quan
JavaFX là m t n n t ng c phát tri n cho vi c xây d&ng các ng d ng và cung c'p n i dung cho ng i dùng $u cu i V i thi t k cho phép d dàng xây d&ng
và tri n khai các rich internet applications (RIAs) cùng v i thành ph$n media khác,
n n t ng JavaFX m b o r(ng giao di n và ch c n ng c a các RIAs s) phù h p trên các môi tr ng luôn thay *i
100,000 l t download các công c và SDK Hi n nay JavaFX ã có trên h%n 50 tri u máy tính
Phiên b n 1.0 c a JavaFX bao g+m: JavaFX Development Environment (ch a các công c biên d ch, th&c thi, th vi n + ho , media và c công c gi l p các thi t
b di ng), JavaFX Production Suite (th vi n công c và plug-ins cho phép chuy n
*i các tài li u t, các ph$n m m + ho chuyên nghi p nh Photoshop, Illustrator, sang JavaFX) và JavaFX Desktop cho phép ng i dùng kéo th ch y tr&c ti p các applet ngay bên trong trình duy t
JavaFX t %ng thích hoàn toàn v i Java Runtime và có c u th v kh th&c thi và tính ph* bi n c a Sun's Java Runtime Environment(hi n ã c cài "t trên hành t- thi t b trên toàn th gi i) Thêm vào ó JavaFX s) thúc y n ng su't làm vi c
và s& c ng gi!a các nhà phát tri n ng d ng và i ng/ thi t k + h a
Và t i th i i m hi n t i phiên b n 1.2.1 c a JavaFX ch a nhi u tính n ng m i
và c i ti n v ch't l ng nh giao di n i u khi n và bi u +, l u tr0 liên t c, th i gian kh1i ng nhanh h%n và các c i ti n v hi u su't khác
2 Lý do ch n JavaFX
Các nhà phát tri n ang tìm ki m m t n n t ng hi u qu t o ra ng d ng có
th ch y trên máy PC, internet và thi t b di ng C$n ph i xây d&ng m t giao di n
n có th ho t ng c trên nhi u trình duy t web, h i u hành, và các thi t b mà không ph i m't công vi t l i t,ng ng d ng cho m2i thi t b N n t ng JavaFX ch a công c và công ngh c$n thi t cho phép các nhà phát tri n và thi t k h p tác, t o và tri n khai các ng d ng v i cùng m t n i dung có th tri n khai c trên PC và trình duy t Web
3 Nh ng c i m n i b t c a JavaFX
Expressive RIA platform for all screens
JavaFX cung c'p m t mô hình phát tri n và tri n khai th ng nh't cho vi c xây d&ng ng d ng nhúng các thành ph$n nh âm thanh, video, + h a, v n b n và các
d ch v web JavaFX cho ng i phát tri n sáng t o ch %ng trình trong m t t$m nhìn
Trang 5ng! c nh, nh v y giúp h mang nh!ng ý t 1ng c a h vào i s ng nhanh h%n và t t h%n
Broadest market reach and deepest system features
Tri n khai trên hàng t- thi t b , ng i phát tri n có th nâng cao s c m nh, tính thành th c, thi hành và có m"t 1 b't c n%i nào có Java Virtual Machine Các ng
d ng JavaFX có thu n l i là nâng cao kh n ng thi hành nh!ng "c tr ng c a JAVA
nh HotSpot Virtual Machine, trình d n rác, và các th vi n l p trình chuyên nghi p JavaFX còn cung c'p môi tr ng + h a, âm thanh và x0 lý video chuyên nghi p, v i s& h2 tr t ng t c ph$n c ng
Creativity without boundaries
JavaFX làm cho vi c k t h p các video, âm thanh, + h a, ho t h a và v n b n tr1 nên d dàng 3ng d ng có th bao g+m âm thanh/video và + h a 2 chi u v i ph i
c nh 3 chi u ( + h a 3 chi u th t s4p có) và v n b n, v i nhi u hi u ng và s& bi n
*i Ho t h a chuyên nghi p v i các "c tr ng nh các ng th i gian, các khóa khung (keyframe), và ng i giúp các i t ng ho t h a i theo b't c thi t k chuy n ng nào
Synergy between developers and designers
JavaFX giúp ng i thi t k + h a và ng i phát tri n nhanh chóng, d dàng, không gi i h n k t h p các tài nguyên + h a và media trong quá trình sáng t o +ng
th i gi m công s c b# ra JavaFX làm gi m th i gian s n xu't b(ng cách cho phép
ng i thi t k + h a t o ra hi u ng và n i dung trên nh!ng công c nh Adobe Photoshop và Adobe Illustrator, và mã hóa và a ra nh!ng hi u ng và n i dung cho
a màn hình v i s& thông minh, t* ch c và ng x0 %n gi n
Preserve investment in Java
Ng i phát tri n Java có th gi! l i nh!ng $u t hi n t i b(ng cách dùng l i th
vi n Java trong các ng d ng JavaFX C ng thêm, JavaFX còn có kh n ng ch y trên các thi t b di ng T, m t ch2 ng phát tri n, ng i phát tri n Java có th ti p t c
nh h 1ng n Java toàn c$u v i n n t ng hi u bi t và th tr ng r ng l n JavaFX s)
là s c m nh (ng sau “th %ng hi u” và kinh nghi m giàu có khi nó nh h 1ng n
vi c $u t công ngh hi n t i c a các doanh nghi p
Simple, declarative language for creative minds
ng i phát tri n Web và ng i thi t k công ngh Nó th t %n gi n, d h c, ng i phát tri n có th vi t code, mà nó c b trí r't g$n v i giao di n ng i dùng JavaFX Script có m t s& ràng bu c d! li u m nh m), là m t cú pháp %n gi n cho vi c +ng
b tr ng thái c a nhi u i t ng, vì v y cho phép các thành ph$n giao di n ng i dùng t& ng thay *i tr ng thái v i nh!ng thay *i c a d! li u c% b n
One-click conversion
Trang 6The JavaFX Production Suite ch a d&ng các tools và các plugin cho Adobe Photoshop
và Adobe Illustrator, h2 tr ng i thi t k sáng t o không biên gi i và xu't ra các i
t ng + h a t, công c hi n t i thành nh d ng c a JavaFX Các Plugin cung c'p
nh!ng gì c$n thi t tr c khi chuy n *i Còn bao g+m c JavaFX Media Factory, h2
tr ng i thi t k làm vi c v i Scalable Vector Graphics (SVG) nh là Inkscape chuy n *i các i t ng + h a c a h thành nh d ng c a JavaFX r't t t
Mobile Emulator Provides Most Expressive Content Testing
ng i l p trình b4t $u sáng t o m t cách chuyên nghi p và ki m th0 trên di d ng The
s& h2 tr t t nh't trong vi c phát tri n ng d ng mobile và desktop t, m t n n t ng mã ngu+n duy nh't
4 N n t ng c a JavaFX
N n t ng JavaFX bao g+m m t ngôn ng! khai báo %n gi n có tên là JavaFX Script, t p h p các công c phát tri n, + h a, media và các th vi n h2 tr âm thanh,
và môi tr ng th&c thi i u này m b o r(ng ng d ng có th cung c'p m t giao di n phù h p và t o ra c m giác không gi i h n vào thi t b $u cu i
Trang 75 Công c phát tri n
D i ây là các gói công c mà chúng ta có th s0 d ng phát tri n ng d ng JavaFX.Hình d i minh h a cho các gói download, và ti p theo sau là n i dung chi
ti t mô t thành ph$n c a các gói
Gói công c phát tri n bao g+m:
NetBeans IDE 6.7.1 for JavaFX 1.2
Công ngh JavaFX k t h p v i NetBeans IDE,m t môi tr ng phát tri n ng d ng hoàn thi n và m nh m) cho phép d dàng xây d&ng,xem tr c,ki m l2i các ng d ng JavaFX
NetBeans IDE for JavaFX r't d dàng s0 d ng nó bao g+m c JavaFX SDK và r't nhi u các ví d c% b n.Ngoài ra NetBeans editor h2 tr kéo th các thành ph$n giúp chúng ta d dàng thêm các bi u th c JavaFX bao g+m c các hi u ng,animation và transformations
JavaFX 1.2 Production Suite
G+m các công c thi t k , h* tr 4c l&c cho nhà phát tri n xây d&ng các ng
d ng JavaFX m t cách tr&c quan
Bao g+m:
o JavaFX Plugin for Adobe Photoshop and JavaFX Plugin for Adobe Illustrator
H2 tr chuy n *i các tài nguyên + h a t, công c thi t k sang nh d ng c a JavaFX
Nhà phát tri n có th b4t $u xây d&ng ng d ng c a h d&a trên các tài nguyên
mà i ng/ thi t k t o ra.Khi vi c thi t k + h a c tách r i,nó s) d dàng cho i ng/ phát tri n c p nh t các thay *i v + h a cho các phiên b n c a ng d ng
Khi ng i thi t k l u l i các thi t k 1 nh d ng JavaFX h có th xem xét và ánh giá m c phù h p c a thi t k v i t,ng thi t b (Desktop ho"c Mobile).Ngoài ra các công c còn h2 tr t i u kích th c c a các i t ng + h a nh(m mang l i tính
t %ng thích t t nh't cho t,ng môi tr ng mà ng d ng s) th&c thi
Trang 8o JavaFX Media Factory
JavaFX Media Factory bao g+m 2 công c sau:
- SVG Converter: Chuy n nh d ng + h a SVG sang nh d ng c a JavaFX
- JavaFX Graphics Viewer: Công c cho phép xem tr c các thi t k + h a
phép ta xem tr c các thi t k + h a trên c 2 môi tr ng Desktop và Mobile
JavaFX 1.2.1 SDK
N u b n mu n s0 d ng m t công c khác,ho"c phát tri n tr&c ti p t, môi tr ng command line, b n có th download gói stand-alone SDK
JavaFX 1.2 Plugin for Eclipse
T o ng d ng JavaFX v i eclipse
II U VÀ NH C I M C!A JavaFX SO V I CÁC CÔNG NGH KHÁC
1 Flex và AIR c a Adobe
Flash là công ngh th hi n n*i ti ng v kh n ng x0 lý + h a vector và nh ng, cho phép t o n i dung a ph %ng ti n t %ng tác v i ng i dùng thông qua ActionScript Flex d&a trên Flash, dùng ngôn ng! khai báo d&a trên xml (MXML) k t
h p v i ActionScript, cung c'p s& tách bi t gi!a ph$n giao di n ng i dùng và ph$n
và ch y v i Flash player – ch y trên b't k5 h th ng nào h2 tr Flash, có kh n ng
3ng d ng Flash/Flex c/ng có th ch y trên desktop v i th vi n th&c thi AIR AIR (Adobe Integrated Runtime) là công ngh tri n khai ch y các ng d ng Flash/Flex và c Ajax mà không c$n trình duy t, t %ng t& ClickOnce c a Microsoft – công ngh tri n khai ng d ng d&a trên Windows, nh ng AIR ch y trên c Windows
và Mac
Adobe cung c'p 3 con ng khác nhau t o ng d ng RIA Ti n nh't, v i HTML và JavaScript có th phát tri n ng d ng RIA tr&c ti p trong môi tr ng phát tri n Dreamweaver CS3 s0 d ng AIR SDK 3ng d ng RIA có th t o trong Flash sau khi t i v m t b n c p nh t cho Flash CS3 Flash r't thích h p cho vi c xây d&ng n i dung a ph %ng ti n h'p d6n mà không nh't thi t làm phình to ng d ng, ây là n%i Flex th hi n vai trò c a mình Flex cung c'p h2 tr vi c phát tri n ng d ng t t h%n Flash, m"c dù v6n d&a trên ActionScript cho ph$n lu n lý ng d ng ActionScript là ngôn ng! tuân theo "c t ECMAScript t %ng t& nh JavaScript, h2 tr l p trình
h ng i t ng c% b n Flex Builder 3 cung c'p môi tr ng phát tri n d&a trên Eclipse xây d&ng ng d ng RIA dùng Flex 3 SDK (th vi n ngu+n m1) và giao
di n kéo-th t o giao di n ng i dùng d&a trên MXML
2 Silverlight c a Microsoft
Silverlight (2.0) có th xem là t p con c a Windows Presentation Foundation
(WPF), c/ng s0 d ng XAML (eXxtensible Application Markup Language) – ngôn ng! khai báo d&a trên xml nh ngh7a giao di n ng i dùng (bao g+m + ho vector,
(managed code) dùng các ngôn ng! NET hay JavaScript và Python/Ruby Silverlight yêu c$u cài "t th vi n b* sung trình duy t th&c thi phía client Hi n
t i ng d ng Silverlight có th ch y v i trình duy t Internet Explorer và Firefox trên
Trang 9Windows, Safari và Firefox trên Mac OS X H2 tr cho thi t b di ng, Microsoft có Silverlight for Mobile ch y trên h i u hành Nokia S60 và Windows Mobile 6
Microsoft ã t, lâu n*i ti ng trong vi c xây d&ng các công c phát tri n ngo i h ng
xây d&ng ng d ng Silverlight trong Visual Studio (h ng n nhà phát tri n) hay Expression Studio (h ng n nhà thi t k )? Công c nào c/ng có trình so n th o XAML cho phép xây d&ng giao di n ng i dùng ph c t p, nh ng Expression Studio cung c'p các tính n ng hoàn ch-nh h%n t o hình nh ng và hi u ng + h a
Ng c l i, Visual Studio cung c'p các tính n ng phát tri n và b6y l2i tiên ti n mà m i nhà phát tri n u mong mu n
M t l i ích quan tr ng khác là Silverlight (2.0) h2 tr mã l nh c qu n lý c a .NET vi t ng d ng, cho phép s0 d ng n n t ng phát tri n m nh h2 tr các khái
ni m l p trình h ng i t ng nh k th,a và a hình, và các tính n ng ngôn ng! tiên
ti n nh l p chung và l p riêng V i NET CLR (Common Language Runtime) trong
th vi t b(ng C#, VB, IronPython và IronRuby V i kh n ng h2 tr thêm nhi u ngôn ng! n!a, Silverlight s) h'p d6n nhi u nhà phát tri n v i n n t ng khác nhau
3 u và nh "c i m c a JavaFX so v i các công ngh trên
• u i m:
JavaFX Script là ngôn ng! khai báo không d&a trên xml giúp c't i gánh n"ng xây d&ng giao di n ng i dùng v n tr c ây yêu c$u khá nhi u mã l nh Swing JavaFX Script biên d ch thàng Java byte code nên có th ch y b't c 1 âu có cài "t
JavaFX trên các thi t b di ng
Mã l nh JavaFX nh't thi t ph i biên d ch thành Java byte code và ch y trên máy o Java (JVM) nh các Java applet thông th ng, không yêu c$u th vi n b* sung trình duy t nào khác Mi n là h th ng có JVM là có th ch y JavaFX Mac OS có tích
h p s8n JVM, vì v y không c$n t i v thêm b't k5 th gì ch y JavaFX trên Mac Trên các h th ng Windows, c Firefox và IE u hi n th thông báo n u ch a cài JVM Firefox sau ó a ra m t th vi n giúp cài "t JVM, còn IE chuy n h ng
n 1 trang web có các h ng d6n ng i dùng t i v và cài "t JVM th công
• Nh "c i m:
JavaFX h2 tr v m"t phát tri n c a JavaFX r't ít, ch y u g+m th vi n OpenJFX cho NetBeans, cung c'p h2 tr c% b n cho vi c t o và biên d ch mã l nh (script) JavaFX NetBeans hi n là môi tr ng phát tri n tích h p (IDE) duy nh't h2 tr JavaFX Có hai công c c a hãng th ba h2 tr ph$n hi n th trong JavaFX ó là công
c so n th o JavaFXPad cho phép vi t mã l nh JavaFX và nhìn th'y k t qu hi n th trong m t c0a s* xem tr c, nh ng không cung c'p b't k5 h2 tr kéo-th nào cho các ph$n t0 trên màn hình; và công c + ho JFXBuilder c a ReportMill cung c'p giao
di n kéo-th cho vi c xây d&ng giao di n ng i dùng Là ngôn ng! khai báo không d&a trên xml, mã l nh JavaFX gi ng nh s& tr n l6n gi!a Java và CSS
Trang 10
4 B ng so sánh các công ngh m i
Phiên b n m i
Công c phát tri n
(IDE) (Eclipse platform) Flex Builder 3.0
Visual Studio
2008 .NET Platform 3.5 Silverlight Visual Studio 2008 Template
Eclipse hay NetBean 6.01 JavaFX plugin
Chi phí cho công
c phát tri n
249-699 USD (Gi i pháp ngu+n m1 thay th : FlashDevelop, www.osflash.org)
289-799 USD (ngu+n m1) Mi n phí
XAML JavaScript (C#, VB.Net, ASP.Net)
JavaFX Script Java
Th vi n b* sung
trình duy t
(plug-in)
Adobe Flash Player 10 Silverlight 3.0 JavaFX extension Java Plugin with
Dung l ng t i v
client (Windows)
1.1 MB (AIR Runtime:
III CÀI #T TRÌNH BIÊN D CH
t o ng d ng JavaFX ta c$n làm nh!ng b c sau:
1 B c 1: T i v và cài t JDK
Ngôn ng! l p trình JavaFX phát tri n d&a trên n n t ng Java vì v y tr c b n
ph i cài "t JDK 5 ho"c JDK 6 (6 thì nhanh h%n) trên h th ng c a mình N u máy tính c a b n ch a có JDK hãy t i v và cài "t tr c khi b4t $u làm vi c v i JavaFX
2 B c 2: L a ch n môi tr $ng phát tri n ng d ng
Hi n nay có 2 tr ng phát tri n ng d ng cho b n l&a ch n: Phát tri n ng
d ng b(ng m t IDE (môi tr ng phát tri n ng d ng tích h p) ho"c s0 d ng m t trình
so n th o v n b n thu$n túy S& l&a ch n là tùy thu c vào ng i phát tri n
3 B c 3: T i v và cài t trình biên d%ch, môi tr $ng th c thi
JavaFX là m t ngôn ng! biên d ch, i u ó có ngh7a là t't c các mã ngu+n mà