à Nng, 10/2009 I HC À NNG
TRNG I HC BÁCH KHOA
KHOA CÔNG NGHTHÔNG TIN
THC TP NHN THC JAVA
NGHIÊN CU CÔNG NGH
JAVAFX TRONG JAVA
5. Công c phát trin 6
II. U VÀ NHC I M C!A JavaFX SO VI CÁC CÔNG NGH KHÁC
7
1. Flex và AIR ca Adobe 7
2. Silverlight ca Microsoft 7
3. u và nh"c im ca JavaFX so vi các công ngh trên 8
4. Bng so sánh các công ngh mi 9
III. CÀI #T TRÌNH BIÊN DCH 9
1. Bc 1: Ti v và cài t JDK 9
2. Bc 2: La chn môi tr$ng phát trin ng dng 9
3. Bc 3: Ti v và cài t trình biên d%ch, môi tr$ng thc thi 9
IV. &NG DNG MINH HA VÀ DEMO CH'NG TRÌNH 10
1. Lp Key "c th(a k) t( lp CustomNode là lp có s*n ca JavaFX 10
2. Lp FXCalculator c+ng "c th(a k) t( lp CustomNode 10
3. Hàm Main 10
4. Demo ch,ng trình 11
cung c'p ni dung cho ngi dùng $u cui. Vi thit k cho phép d dàng xây d&ng
và trin khai các rich internet applications (RIAs) cùng vi thành ph$n media khác,
nn tng JavaFX m bo r(ng giao din và chc nng ca các RIAs s) phù hp trên
các môi trng luôn thay *i.
JavaFX 1.0 c gii thiu ngày 4/12/2008. Và n 1/1/2009 ã có h%n
100,000 lt download các công c và SDK. Hin nay JavaFX ã có trên h%n 50 triu
máy tính.
Phiên bn 1.0 ca JavaFX bao g+m: JavaFX Development Environment (cha
các công c biên dch, th&c thi, th vin + ho, media và c công c gi l p các thit
b di ng), JavaFX Production Suite (th vin công c và plug-ins cho phép chuyn
*i các tài liu t, các ph$n mm + ho chuyên nghip nh Photoshop, Illustrator,
sang JavaFX) và JavaFX Desktop cho phép ngi dùng kéo th chy tr&c tip các
applet ngay bên trong trình duyt.
JavaFX t%ng thích hoàn toàn vi Java Runtime và có c u th v kh th&c
thi và tính ph* bin ca Sun's Java Runtime Environment(hin ã c cài "t trên
hành t- thit b trên toàn th gii). Thêm vào ó JavaFX s) thúc .y nng su't làm vic
và s& cng gi!a các nhà phát trin ng dng và i ng/ thit k + ha.
Và ti thi im hin ti phiên bn 1.2.1 ca JavaFX cha nhiu tính nng mi
và ci tin v ch't lng nh giao din iu khin và biu +, lu tr0 liên tc, thi
gian kh1i ng nhanh h%n và các ci tin v hiu su't khác.
2. Lý do chn JavaFX
Các nhà phát trin ang tìm kim mt nn tng hiu qu to ra ng dng có
th chy trên máy PC, internet và thit b di ng. C$n phi xây d&ng mt giao din
n có th hot ng c trên nhiu trình duyt web, h iu hành, và các thit b mà
không phi m't công vit li t,ng ng dng cho m2i thit b. Nn tng JavaFX cha
công c và công ngh c$n thit cho phép các nhà phát trin và thit k hp tác, to và
trin khai các ng dng vi cùng mt ni dung có th trin khai c trên PC và trình
duyt Web.
3. Nhng c im ni bt ca JavaFX
Ngi phát trin Java có th gi! li nh!ng $u t hin ti b(ng cách dùng li th
vin Java trong các ng dng JavaFX. Cng thêm, JavaFX còn có kh nng chy trên
các thit b di ng. T, mt ch2 ng phát trin, ngi phát trin Java có th tip tc
nh h1ng n Java toàn c$u vi nn tng hiu bit và th trng rng ln. JavaFX s)
là sc mnh (ng sau “th%ng hiu” và kinh nghim giàu có khi nó nh h1ng n
vic $u t công ngh hin ti ca các doanh nghip.
Simple, declarative language for creative minds
3ng dng JavaFX c vit trên JavaFX Script, mt ngôn ng! c thit k cho
ngi phát trin Web và ngi thit k công ngh. Nó th t %n gin, d hc, ngi
phát trin có th vit code, mà nó c b trí r't g$n vi giao din ngi dùng. JavaFX
Script có mt s& ràng buc d! liu mnh m), là mt cú pháp %n gin cho vic +ng
b trng thái ca nhiu i tng, vì v y cho phép các thành ph$n giao din ngi
dùng t& ng thay *i trng thái vi nh!ng thay *i ca d! liu c% bn.
One-click conversion
Nghiên cu công ngh JavaFX trong Java
SVTT: Nguyn Thanh Xuân Lp 06T1-m 11A Trang
The JavaFX Production Suite cha d&ng các tools và các plugin cho Adobe Photoshop
và Adobe Illustrator, h2 tr ngi thit k sáng to không biên gii và xu't ra các i
tng + ha t, công c hin ti thành nh dng ca JavaFX. Các Plugin cung c'p
mt preview ca các ni dung c chuyn *i, giúp ngi thit k ch-nh s0a b't c
nh!ng gì c$n thit trc khi chuyn *i. Còn bao g+m c JavaFX Media Factory, h2
tr ngi thit k làm vic vi Scalable Vector Graphics (SVG) nh là Inkscape
chuyn *i các i tng + ha ca h thành nh dng ca JavaFX r't tt.
Mobile Emulator Provides Most Expressive Content Testing
JavaFX 1.2.1 SDK c a ra hin nay bao g+m JavaFX Mobile Emulator h2 tr
ngi l p trình b4t $u sáng to mt cách chuyên nghip và kim th0 trên di dng. The
Desktop Runtime c/ng c update tng tc x0 lý và s& *n nh nh(m mang li
s& h2 tr tt nh't trong vic phát trin ng dng mobile và desktop t, mt nn tng mã
ngu+n duy nh't.
4. Nn tng ca JavaFX
JavaFX.
Nhà phát trin có th b4t $u xây d&ng ng dng ca h d&a trên các tài nguyên
mà i ng/ thit k to ra.Khi vic thit k + ha c tách ri,nó s) d dàng cho i
ng/ phát trin c p nh t các thay *i v + ha cho các phiên bn ca ng dng.
Khi ngi thit k lu li các thit k 1 nh dng JavaFX h có th xem xét và
ánh giá mc phù hp ca thit k vi t,ng thit b(Desktop ho"c Mobile).Ngoài ra
các công c còn h2 tr ti u kích thc ca các i tng + ha nh(m mang li tính
t%ng thích tt nh't cho t,ng môi trng mà ng dng s) th&c thi.
Nghiên cu công ngh JavaFX trong Java
SVTT: Nguyn Thanh Xuân Lp 06T1-m 11A Trang
o JavaFX Media Factory
JavaFX Media Factory bao g+m 2 công c sau:
- SVG Converter: Chuyn nh dng + ha SVG sang nh dng ca JavaFX
- JavaFX Graphics Viewer: Công c cho phép xem trc các thit k + ha
sau khi c chuyn sang nh dng ca JavaFX. JavaFX Graphics Viewer còn cho
phép ta xem trc các thit k + ha trên c 2 môi trng Desktop và Mobile.
JavaFX 1.2.1 SDK
Nu bn mun s0 dng mt công c khác,ho"c phát trin tr&c tip t, môi trng
command line, bn có th download gói stand-alone SDK
JavaFX 1.2 Plugin for Eclipse
To ng dng JavaFX vi eclipse.
II. U VÀ NHC I M C!A JavaFX SO VI CÁC CÔNG NGH KHÁC
1. Flex và AIR ca Adobe
Flash là công ngh th hin n*i ting v kh nng x0 lý + ha vector và nh ng,
cho phép to ni dung a ph%ng tin t%ng tác vi ngi 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) kt
hp vi ActionScript, cung c'p s& tách bit gi!a ph$n giao din ngi dùng và ph$n
lu n lý ng dng rõ ràng h%n so Flash. 3ng dng Flex c biên dch thành file .SWF
và chy vi Flash player – chy trên b't k5 h thng nào h2 tr Flash, có kh nng
chy trên c thit b di ng (vi Flash Lite).
Silverlight for Mobile chy trên h iu hành Nokia S60 và Windows Mobile 6.
Microsoft ã t, lâu n*i ting trong vic xây d&ng các công c phát trin ngoi hng
cho các công ngh ca mình, và xu hng này c tip tc vi Silverlight. Bn có
xây d&ng ng dng Silverlight trong Visual Studio (hng n nhà phát trin) hay
Expression Studio (hng n nhà thit k)? Công c nào c/ng có trình son tho
XAML cho phép xây d&ng giao din ngi dùng phc tp, nhng Expression Studio
cung c'p các tính nng hoàn ch-nh h%n to hình nh ng và hiu ng + ha.
Ngc li, Visual Studio cung c'p các tính nng phát trin và b6y l2i tiên tin mà mi
nhà phát trin u mong mun.
Mt li ích quan trng khác là Silverlight (2.0) h2 tr mã lnh c qun lý ca
.NET vit ng dng, cho phép s0 dng nn tng phát trin mnh h2 tr các khái
nim l p trình hng i tng nh k th,a và a hình, và các tính nng ngôn ng! tiên
tin nh lp chung và lp riêng. Vi .NET CLR (Common Language Runtime) trong
trình duyt, mã lnh c qun lý s) c biên dch thành nh phân trên client và chy
c&c nhanh. Mã lnh c qun lý có trong nhiu ngôn ng!, ng dng Silverlight có
th vit b(ng C#, VB, IronPython và IronRuby. Vi kh nng h2 tr thêm nhiu ngôn
ng! n!a, Silverlight s) h'p d6n nhiu nhà phát trin vi nn tng khác nhau
3. u và nh"c im ca JavaFX so vi các công ngh trên
• u im:
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 din ngi dùng vn trc ây yêu c$u khá nhiu mã lnh Swing.
JavaFX Script biên dch thàng Java byte code nên có th chy b't c 1 âu có cài "t
máy o Java (JVM). Và có thêm JavaFX Mobile c thit k trin khai ng dng
JavaFX trên các thit b di ng.
Mã lnh JavaFX nh't thit phi biên dch thành Java byte code và chy trên
máy o Java (JVM) nh các Java applet thông thng, không yêu c$u th vin b* sung
trình duyt nào khác. Min là h thng có JVM là có th chy JavaFX. Mac OS có tích
hp s8n JVM, vì v y không c$n ti v thêm b't k5 th gì chy JavaFX trên Mac.
(Eclipse platform)
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 trin
249-699 USD
(Gii pháp ngu+n
m1 thay th:
FlashDevelop,
www.osflash.org)
289-799 USD
Min phí
(ngu+n m1)
Ngôn ng!
MXML
ActionScript
XAML
JavaScript
(C#, VB.Net,
ASP.Net)
Nghiên cu công ngh JavaFX trong Java
SVTT: Nguyn Thanh Xuân Lp 06T1-m 11A Trang
sau ó mi có th th&c thi trên h thng. iu này không ph thuc vào b't c môi
trng phát trin nào. Sau khi cài "t JDK và chn mt môi trng phát trin c th,
ngi phát trin s) phi ti v và cài "t trình biên dch và môi trng th&c thi JavaFX.
Cách tt nh't có c ph$n mm này là ti v toàn b gói JavaFX SDK, nó bao
g+m NetBeans IDE, trình biên dch, môi trng th&c thi và mt s công c khác.
Mt cách %n gin khác là ti v latest compiler binary t, website ca d& án
openjfx. Bn thân trình biên dch c/ng c vit b(ng ngôn ng! Java; Vic cài "t và
biên dch li các class s) giúp bn có mt cái nhìn $y và chính xác h%n v JavaFX.
IV. &NG DNG MINH HA VÀ DEMO CH'NG TRÌNH
3ng dng %n gin dùng minh ha 1 ây là mt Calculator %n gin. Có s0
dng + ha, x0 lý s& kin trên mouse và các phép tính c% bn. c vit trên môi
trng Eclipse
3ng dng Calculator g+m 2 lp:
1. Lp Key "c th(a k) t( lp CustomNode là lp có s*n ca JavaFX
Chc nng ca lp này là v ra các nút có tô màu và hiu ng cho các nút ó: Ví d:
public var cellSelFill = LinearGradient {
startX: 0.0, startY: 0.0, endX: 0.0, endY: 28.0
proportional: false
stops: [
Stop { offset: 0.0 color: Color.ORANGE },
Stop { offset: 0.3 color: Color.GRAY },
Stop { offset: 0.99 color: Color.BLACK }
]
}
Dùng tô khi có chut di chuyn lên do: Nghiên cu công ngh JavaFX trong Java
SVTT: Nguyn Thanh Xuân Lp 06T1-m 11A Trang
K/T LU0N
1. u im
M"c dù ra i mun, nhng vi li th v mc ph* bin ca nn tng Java, "c
bit là trên các thit b di ng, JavaFX c ánh giá cao.
Ch%ng trình JavaFX d hiu, r't d hc vi nh!ng ngi ã n4m v!ng ngôn ng!
JAVA.
2. Nh"c im
Chy trên nn JDK JavaFX nên không thông dng l4m. So vi Flash và
SilverLight thì JavaFX còn thua xa. Vì Flash chy trên Flash Player quá thông dng.
H$u nh ai dùng internet c/ng cài d"t.