Sun剛剛發(fā)布了JavaFX技術(shù)的正式版,它使您能利用 JavaFX 編程語言開發(fā)富互聯(lián)網(wǎng)應(yīng)用程序(RIA)。JavaFX Script 編程語言(以下稱為JavaFX)是Sun微系統(tǒng)公司開發(fā)的一種declarative, statically typed(聲明性的、靜態(tài)類型)腳本語言。JavaFX技術(shù)有著良好的前景,包括可以直接調(diào)用Java API的能力。因為 JavaFX Script是靜態(tài)類型,它同樣具有結(jié)構(gòu)化代碼、重用性和封裝性,如包、類、繼承和單獨編譯和發(fā)布單元,這些特性使得使用Java技術(shù)創(chuàng)建和管理大型程序變?yōu)榭赡堋?BR> JavaFX開發(fā)應(yīng)用中的問題答疑
JavaFX腳本是一種聲明式、靜態(tài)類型編程語言。它具有一等函數(shù)(first-class functions)、聲明式的語法、列表推導(dǎo)(list-comprehensions)及基于依賴關(guān)系的增量式求值(incremental dependency-based evaluation)等特征。JavaFX腳本為多種多樣的操作提供了聲明式、無中間程序邏輯的語法,這些操作包括創(chuàng)建2D動畫、設(shè)置屬性或者聲明在模式和視圖對象之間的綁定依賴關(guān)系。
JavaFX教程
在JavaFX中,類的成員函數(shù)和操作本身被模式化作為在目標(biāo)類中的類,而形參和返回值被表示為屬性。代表目標(biāo)對象的屬性名是“this”。代表返回值的屬性名為“return”。代表形參的屬性具有和形參相同的屬性名。而目標(biāo)對象則指使用成員函數(shù)和操作的對象。 從上例中可以發(fā)現(xiàn),你也可以從Class對象中獲取相同的、被反射的操作。 被反射的操作能夠像函數(shù)那樣通過將目標(biāo)對象作為第一個參數(shù)、其它參數(shù)作為后面的參數(shù)的方式被調(diào)用:
AJAX,F(xiàn)lash,Silverlight,JavaFX到底選誰
事實上,像Adobe’s Flex, Microsoft’s Silverlight, 以及Sun 最近發(fā)布的JavaFX這樣的計算技術(shù),使得向量圖形實質(zhì)上優(yōu)于AJAX提供的Dojo或者Yahoo圖形實驗室(YUI)這種構(gòu)架。無論相信與否,在網(wǎng)絡(luò)應(yīng)用程序開發(fā)中,在基于網(wǎng)絡(luò)的向量圖形的應(yīng)用方面存在巨大的商機(jī),而這絕不僅僅是看起來比較誘人這么簡單。需要注意到,無論是JavaFX, 還是Sliverlight現(xiàn)在都沒有分享到被Adobe Flash Player占領(lǐng)的任何市場份額。
JavaFX 1.0 Final 正式發(fā)布
考試大獲悉:2008年12月05日 Sun微系統(tǒng)公司今天正式發(fā)布了基于Java語言的平臺JavaFX 1.0,這個平臺建立在其廣泛應(yīng)用的Java編程語言的基礎(chǔ)上,旨在建立大量可在電腦和手機(jī)上運行的網(wǎng)絡(luò)程序。 Java一直以來就是編程語言,但是隨著JavaFX的發(fā)布,Sun公司開始允許將編程內(nèi)容創(chuàng)新這一任務(wù)轉(zhuǎn)移到以設(shè)計藝術(shù)為重點而非編程科學(xué)為重點的設(shè)計人員身上。
“我們的目標(biāo)群體是叫做創(chuàng)造者的人群”,Sun公司Java平臺組的高級副主任 OctavianTanase對 InternetNews.com說,“隨著1.0版的發(fā)布,我們將目標(biāo)鎖定在網(wǎng)頁開發(fā)人員,這群可能拓展Java界面體驗的人。到2011年,主要的目標(biāo)是大量使用諸如Adobe系統(tǒng)等設(shè)計工具的設(shè)計人員”。
當(dāng)然,通向這個以設(shè)計為導(dǎo)向的工具還需要一些時間。Sun公司最后打算提供自己的程序給設(shè)計人員來建立RIAS,但是直到如今,這些設(shè)計人員還得使用程序員所使用的Netbeans或Eclipse集成開發(fā)環(huán)境(IDE)。新工具將在來年夏天面市 JavaFX的例子
package firstjavafxsphere;
import javafx.scene.effect.DropShadow;
import javafx.scene.paint.Color;
import javafx.scene.paint.RadialGradient;
import javafx.scene.paint.Stop;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.scene.text.TextAlignment;
import javafx.scene.transform.Scale;
import javafx.stage.Stage;
import javafx.animation.Timeline;
import javafx.animation.KeyFrame;
import javafx.animation.Interpolator;
// 比例參數(shù)
var scale=1.0;
// 顏色,黃色
var color=Color.YELLOW;
// 時間線
Timeline {
// 重復(fù)次數(shù),無限
repeatCount: Timeline.INDEFINITE
// 關(guān)鍵幀組
keyFrames: [
// 一個關(guān)鍵幀
KeyFrame {
// 此幀運行時間,2秒
time: 2s
// 在主時間線獲得時,是否可以忽略此活動,默認(rèn)為false
canSkip: true
// 此關(guān)鍵幀的參數(shù)和感興趣的參數(shù)
values: [
// 比例變化到 0.0, 進(jìn)入和離開都擦除
scale => 0.0 tween Interpolator.EASEBOTH
// 顏色變化到綠色
color => Color.GREEN
]
}
]
}.play(); // 運行時間線
// 舞臺/窗口
Stage {
// 標(biāo)題
title: "My First JavaFX Sphere"
// 窗口的寬度
width: 250
// 窗口的高度
height: 250
// 鏡頭
scene: Scene {
// 內(nèi)容,節(jié)點列表
content:[
// 圓
Circle {
// 中心點的X/Y坐標(biāo)
centerX: 100
centerY: 100
// 圓的半徑
radius: 90
// 填充設(shè)置,圓形梯度擴(kuò)散填充
fill:RadialGradient {
// 圓心梯度的中心X和Y
// 對于外部的100,100的圓,則75,75出現(xiàn)在外部圓的左上
centerX:75
centerY:75
// 半徑和外部的圓相同
radius:90
// 開始和結(jié)束值是否為比例值或者絕對值
// 我們用絕對值
proportional:false
// 一些列沿半徑的光圈數(shù)值,類似關(guān)鍵幀
stops:[
// 光圈1
Stop {
// 偏移在0,也就是起始點
offset:0.0
// 顏色為紅色
color:Color.RED
},
// 光圈2
Stop{
// 偏移在100%,顏色為深紅
offset:1.0
color:Color.DARKRED
}
]
}
}
// 另一個內(nèi)容,文本
Text {
// 文本的字體設(shè)置
font: Font {
size: 24
}
// 文字的坐標(biāo)
x: 20
y: 90
// 文字的對齊方式
textAlignment:TextAlignment.CENTER
// 文字的內(nèi)容
content: "Welcome to \nJavaFX World"
// 文字的填充綁定到color變量
// 時間線影響了color,則影響到了文字的顏色
fill:bind color
// 文字的陰影效果
effect:DropShadow {
// 陰影的偏移,在右下方
offsetX:10
offsetY:10
// 陰影的顏色
color:Color.color(0.1, 0.3, 0.1)
}
// 文字的變化
transforms:Scale{
// X不變
x:1
// Y綁定在scale變量
y:bind scale
// 變化的中心點,這個設(shè)置以文字的中心做變化
pivotX:100
pivotY:100
}
}
]
}
}
JavaFX腳本是一種聲明式、靜態(tài)類型編程語言。它具有一等函數(shù)(first-class functions)、聲明式的語法、列表推導(dǎo)(list-comprehensions)及基于依賴關(guān)系的增量式求值(incremental dependency-based evaluation)等特征。JavaFX腳本為多種多樣的操作提供了聲明式、無中間程序邏輯的語法,這些操作包括創(chuàng)建2D動畫、設(shè)置屬性或者聲明在模式和視圖對象之間的綁定依賴關(guān)系。
JavaFX教程
在JavaFX中,類的成員函數(shù)和操作本身被模式化作為在目標(biāo)類中的類,而形參和返回值被表示為屬性。代表目標(biāo)對象的屬性名是“this”。代表返回值的屬性名為“return”。代表形參的屬性具有和形參相同的屬性名。而目標(biāo)對象則指使用成員函數(shù)和操作的對象。 從上例中可以發(fā)現(xiàn),你也可以從Class對象中獲取相同的、被反射的操作。 被反射的操作能夠像函數(shù)那樣通過將目標(biāo)對象作為第一個參數(shù)、其它參數(shù)作為后面的參數(shù)的方式被調(diào)用:
AJAX,F(xiàn)lash,Silverlight,JavaFX到底選誰
事實上,像Adobe’s Flex, Microsoft’s Silverlight, 以及Sun 最近發(fā)布的JavaFX這樣的計算技術(shù),使得向量圖形實質(zhì)上優(yōu)于AJAX提供的Dojo或者Yahoo圖形實驗室(YUI)這種構(gòu)架。無論相信與否,在網(wǎng)絡(luò)應(yīng)用程序開發(fā)中,在基于網(wǎng)絡(luò)的向量圖形的應(yīng)用方面存在巨大的商機(jī),而這絕不僅僅是看起來比較誘人這么簡單。需要注意到,無論是JavaFX, 還是Sliverlight現(xiàn)在都沒有分享到被Adobe Flash Player占領(lǐng)的任何市場份額。
JavaFX 1.0 Final 正式發(fā)布
考試大獲悉:2008年12月05日 Sun微系統(tǒng)公司今天正式發(fā)布了基于Java語言的平臺JavaFX 1.0,這個平臺建立在其廣泛應(yīng)用的Java編程語言的基礎(chǔ)上,旨在建立大量可在電腦和手機(jī)上運行的網(wǎng)絡(luò)程序。 Java一直以來就是編程語言,但是隨著JavaFX的發(fā)布,Sun公司開始允許將編程內(nèi)容創(chuàng)新這一任務(wù)轉(zhuǎn)移到以設(shè)計藝術(shù)為重點而非編程科學(xué)為重點的設(shè)計人員身上。
“我們的目標(biāo)群體是叫做創(chuàng)造者的人群”,Sun公司Java平臺組的高級副主任 OctavianTanase對 InternetNews.com說,“隨著1.0版的發(fā)布,我們將目標(biāo)鎖定在網(wǎng)頁開發(fā)人員,這群可能拓展Java界面體驗的人。到2011年,主要的目標(biāo)是大量使用諸如Adobe系統(tǒng)等設(shè)計工具的設(shè)計人員”。
當(dāng)然,通向這個以設(shè)計為導(dǎo)向的工具還需要一些時間。Sun公司最后打算提供自己的程序給設(shè)計人員來建立RIAS,但是直到如今,這些設(shè)計人員還得使用程序員所使用的Netbeans或Eclipse集成開發(fā)環(huán)境(IDE)。新工具將在來年夏天面市 JavaFX的例子
package firstjavafxsphere;
import javafx.scene.effect.DropShadow;
import javafx.scene.paint.Color;
import javafx.scene.paint.RadialGradient;
import javafx.scene.paint.Stop;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.scene.text.TextAlignment;
import javafx.scene.transform.Scale;
import javafx.stage.Stage;
import javafx.animation.Timeline;
import javafx.animation.KeyFrame;
import javafx.animation.Interpolator;
// 比例參數(shù)
var scale=1.0;
// 顏色,黃色
var color=Color.YELLOW;
// 時間線
Timeline {
// 重復(fù)次數(shù),無限
repeatCount: Timeline.INDEFINITE
// 關(guān)鍵幀組
keyFrames: [
// 一個關(guān)鍵幀
KeyFrame {
// 此幀運行時間,2秒
time: 2s
// 在主時間線獲得時,是否可以忽略此活動,默認(rèn)為false
canSkip: true
// 此關(guān)鍵幀的參數(shù)和感興趣的參數(shù)
values: [
// 比例變化到 0.0, 進(jìn)入和離開都擦除
scale => 0.0 tween Interpolator.EASEBOTH
// 顏色變化到綠色
color => Color.GREEN
]
}
]
}.play(); // 運行時間線
// 舞臺/窗口
Stage {
// 標(biāo)題
title: "My First JavaFX Sphere"
// 窗口的寬度
width: 250
// 窗口的高度
height: 250
// 鏡頭
scene: Scene {
// 內(nèi)容,節(jié)點列表
content:[
// 圓
Circle {
// 中心點的X/Y坐標(biāo)
centerX: 100
centerY: 100
// 圓的半徑
radius: 90
// 填充設(shè)置,圓形梯度擴(kuò)散填充
fill:RadialGradient {
// 圓心梯度的中心X和Y
// 對于外部的100,100的圓,則75,75出現(xiàn)在外部圓的左上
centerX:75
centerY:75
// 半徑和外部的圓相同
radius:90
// 開始和結(jié)束值是否為比例值或者絕對值
// 我們用絕對值
proportional:false
// 一些列沿半徑的光圈數(shù)值,類似關(guān)鍵幀
stops:[
// 光圈1
Stop {
// 偏移在0,也就是起始點
offset:0.0
// 顏色為紅色
color:Color.RED
},
// 光圈2
Stop{
// 偏移在100%,顏色為深紅
offset:1.0
color:Color.DARKRED
}
]
}
}
// 另一個內(nèi)容,文本
Text {
// 文本的字體設(shè)置
font: Font {
size: 24
}
// 文字的坐標(biāo)
x: 20
y: 90
// 文字的對齊方式
textAlignment:TextAlignment.CENTER
// 文字的內(nèi)容
content: "Welcome to \nJavaFX World"
// 文字的填充綁定到color變量
// 時間線影響了color,則影響到了文字的顏色
fill:bind color
// 文字的陰影效果
effect:DropShadow {
// 陰影的偏移,在右下方
offsetX:10
offsetY:10
// 陰影的顏色
color:Color.color(0.1, 0.3, 0.1)
}
// 文字的變化
transforms:Scale{
// X不變
x:1
// Y綁定在scale變量
y:bind scale
// 變化的中心點,這個設(shè)置以文字的中心做變化
pivotX:100
pivotY:100
}
}
]
}
}

