JavaFX是一個強大的圖形和多媒體處理工具包集合,它允許開發者來設計、創建、測試、調試和部署富客戶端程序,並且和Java一樣跨平台。
JavaFX應用程序
由於JavaFX庫被寫成了Java API,因此JavaFX應用程序代碼可以調用各種Java庫中的API。例如JavaFX應用程序可以使用Java API庫來訪問本地系統功能並且連接到基於服務器中間件的應用程序。
JavaFX可以自定義程序外觀。層級樣式表(CSS)將外觀和樣式與業務邏輯實現進行了分離,因此開發人員可以專注於編碼工作。圖形設計師使用CSS來方便地定制程序的外觀和樣式。如果你具有Web設計背景,或者你希望分離用戶界面(UI)和后端邏輯,那么你可以通過FXML腳本語言來表述圖形界面並且使用Java代碼來表述業務邏輯。如果你希望通過非編碼的方式來設計UI,則可以使用JavaFX Scene Builder。在你進行UI設計時,Scene Builder會創建FXML標記,它可以與一個集成開發環境(IDE)對接,這樣開發人員可以向其中添加業務邏輯
可用性
JavaFXAPI已經完整地集成到了JRE和JDK之中。由於JDK在所有的主要桌面平台(Windows、Mac OS X和Linux)上都是可用的,使用JDK7及以后版本編譯的JavaFX應用程序也可以在所有的主要桌面平台上運行。對ARM平台的支持已經在JavaFX8中可用了。支持ARM的JDK包括JavaFX的基礎組件、圖形組件和控件組件。
跨平台兼容性使得JavaFX應用的開發人員和用戶都可以得到統一的運行時體驗。Oracle確保在所有的平台上同步發布和更新,並且為運行關鍵性應用的公司提供了一個擴展支持程序。
關鍵特性
下面的特性都被包含在了JavaFX8及以后發布版本中。在JavaFX8中引入的內容包括:
● Java API:JavaFX是一個Java庫,包括用Java寫成的類和接口。其API對基於JVM的語言也是友好的,例如JRuby和Scala。
● FXML和Scene Builder:FXML是一種基於XML的聲明式標記語言,用於描述JavaFX應用程序的用戶界面。設計師可以在FXML中編碼或者使用JavaFX Scene Builder來交互式地設計圖形用戶接口(GUI)。Scene Builder所生成的FXML標記可以與IDE對接,這樣開發者可以添加業務邏輯。
● WebView:它是一個使用了WebKitHTML技術的Web組件,可用於在JavaFX應用程序中嵌入Web頁面。在WebView中運行的JavaScript可以方便地調用JavaAPI,並且JavaAPI也可以調用WebView中的JavaScript。對附加的HTML5特性的支持,包括Web Socket、Web Worker、Web Font、打印功能等都被添加到了JavaFX8中。
● 與Swing互操作:現有的Swing程序可以通過JavaFX的新特性升級,例如多媒體播放和Web 內容嵌入。在JavaFX8中加入了SwingNode類,它可以將Swing內容嵌入到JavaFX程序中。
● 內置的UI控件和CSS:JavaFX提供了開發一個全功能應用程序所需的所有主要控件。這些組件可以使用標准的Web技術如CSS來進行裝飾。在JavaFX8中,DatePicker和TreeView UI控件是可用的,並且可以使用標准的Web技術如CSS來進行美化。
● Modena主題:在JavaFX8中,提供了新的Modena主題來替換原來的Caspian主題。不過在Application的start()方法中,可以通過加入setUserAgentStylesheet(STYLESHEET_CASPIAN)代碼行來繼續使用Caspian主題。在com的Modena blog中找到更多信息。
● 3D圖像處理能力:在JavaFX8中的3D圖像處理API中加入了一些新的API,包括Shape3D (Box, Cylinder, MeshView和Sphere 子類),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子類),SceneAntialiasing等。在本次發布中Camera類API也得到了更新。
● Canvas API:Canvas API允許在由一個圖形元素(node)組成的JavaFX場景(Scene)的一個區域中直接繪圖。
● Printing API:JavaFX 8中加入了print包並且提供了打印功能公共類。
● Rich Text支持:JavaFX提供了更為強大的文本支持能力,包括雙向文字(例如阿拉伯語)、復雜文字腳本,例如Thai、Hindu文字,並且支持多行、多種風格的文本節點。
● 多點觸摸:基於底層平台的功能JavaFX提供了對多點觸摸的支持。
● Hi-DPI支持:JavaFX 8現在支持Hi-DPI顯示。
● 圖形渲染硬件加速:JavaFX圖像均基於圖形渲染流水線(Prism)。JavaFX提供更為平滑的圖像並且在顯卡或圖像處理單元(Graphics processing unit,GPU)支持的情況下通過Prism來獲得更快的渲染速度。如果GPU不支持對應的圖形處理功能,則Prism會使用軟件渲染方式來替代。
● 高性能多媒體引擎:媒體流水線支持對Web媒體內容的播放。它提供了一個基於GStreamer多媒體框架的穩定、低延遲的多媒體處理框架。
● 自包含的應用部署模型:自包含應用包具有應用所需的所有資源、包括一個Java和JavaFX運行時的私有拷貝。它們可作為操作系統原生安裝包發布,並提供與原生應用相同的安裝和運行體驗。
本文鏈接文檔:http://www.javafxchina.net/blog/2015/06/doc01_overview/