基礎入門:JavaFX簡介

字號:

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