
- JavaFX 安裝與架構
- JavaFX 環境
- 使用 NetBeans 安裝 JavaFX
- 使用 Eclipse 安裝 JavaFX
- 使用 Visual Studio Code 安裝 JavaFX
- JavaFX 架構
- JavaFX 應用程式
- JavaFX 二維圖形
- JavaFX 二維圖形
- JavaFX 繪製直線
- JavaFX 繪製矩形
- JavaFX 繪製圓角矩形
- JavaFX 繪製圓形
- JavaFX 繪製橢圓
- JavaFX 繪製多邊形
- JavaFX 繪製折線
- JavaFX 繪製三次貝塞爾曲線
- JavaFX 繪製二次貝塞爾曲線
- JavaFX 繪製弧形
- JavaFX 繪製 SVG 路徑
- JavaFX 二維物件的屬性
- JavaFX 描邊型別屬性
- JavaFX 描邊寬度屬性
- JavaFX 描邊填充屬性
- JavaFX 描邊屬性
- JavaFX 描邊連線屬性
- JavaFX 描邊斜接限制屬性
- JavaFX 描邊線帽屬性
- JavaFX 平滑屬性
- JavaFX 路徑物件
- JavaFX 路徑物件
- JavaFX LineTo 路徑物件
- JavaFX HLineTo 路徑物件
- JavaFX VLineTo 路徑物件
- JavaFX QuadCurveTo 路徑物件
- JavaFX CubicCurveTo 路徑物件
- JavaFX ArcTo 路徑物件
- JavaFX 顏色和紋理
- JavaFX 顏色
- JavaFX 線性漸變圖案
- JavaFX 徑向漸變圖案
- JavaFX 文字
- JavaFX 文字
- JavaFX 效果
- JavaFX 效果
- JavaFX 顏色調整效果
- JavaFX 顏色輸入效果
- JavaFX 圖片輸入效果
- JavaFX 混合效果
- JavaFX 輝光效果
- JavaFX 泛光效果
- JavaFX 方框模糊效果
- JavaFX 高斯模糊效果
- JavaFX 運動模糊效果
- JavaFX 反射效果
- JavaFX 棕褐色效果
- JavaFX 陰影效果
- JavaFX 投影效果
- JavaFX 內陰影效果
- JavaFX 光照效果
- JavaFX 遠光源效果
- JavaFX 聚光燈效果
- JavaFX 點光源效果
- JavaFX 位移貼圖
- JavaFX 透視變換
- JavaFX 變換
- JavaFX 變換
- JavaFX 旋轉變換
- JavaFX 縮放變換
- JavaFX 平移變換
- JavaFX 切變變換
- JavaFX 動畫
- JavaFX 動畫
- JavaFX 旋轉過渡
- JavaFX 縮放過渡
- JavaFX 平移過渡
- JavaFX 淡入淡出過渡
- JavaFX 填充過渡
- JavaFX 描邊過渡
- JavaFX 順序過渡
- JavaFX 並行過渡
- JavaFX 暫停過渡
- JavaFX 路徑過渡
- JavaFX 圖片
- JavaFX 圖片
- JavaFX 三維圖形
- JavaFX 三維圖形
- JavaFX 建立立方體
- JavaFX 建立圓柱體
- JavaFX 建立球體
- 三維物件的屬性
- JavaFX 剔除面屬性
- JavaFX 繪製模式屬性
- JavaFX 材質屬性
- JavaFX 事件處理
- JavaFX 事件處理
- JavaFX 使用便捷方法
- JavaFX 事件過濾器
- JavaFX 事件處理器
- JavaFX UI 控制元件
- JavaFX UI 控制元件
- JavaFX 列表檢視
- JavaFX 手風琴
- JavaFX 按鈕欄
- JavaFX 選擇框
- JavaFX HTML 編輯器
- JavaFX 選單欄
- JavaFX 分頁
- JavaFX 進度指示器
- JavaFX 滾動面板
- JavaFX 分隔符
- JavaFX 滑塊
- JavaFX 微調器
- JavaFX 分割窗格
- JavaFX 表格檢視
- JavaFX 標籤頁面板
- JavaFX 工具欄
- JavaFX 樹檢視
- JavaFX 標籤
- JavaFX 複選框
- JavaFX 單選按鈕
- JavaFX 文字欄位
- JavaFX 密碼欄位
- JavaFX 檔案選擇器
- JavaFX 超連結
- JavaFX 工具提示
- JavaFX 警報框
- JavaFX 日期選擇器
- JavaFX 文字區域
- JavaFX 圖表
- JavaFX 圖表
- JavaFX 建立餅圖
- JavaFX 建立折線圖
- JavaFX 建立面積圖
- JavaFX 建立條形圖
- JavaFX 建立氣泡圖
- JavaFX 建立散點圖
- JavaFX 建立堆疊面積圖
- JavaFX 建立堆疊條形圖
- JavaFX 佈局面板
- JavaFX 佈局面板
- JavaFX HBox 佈局
- JavaFX VBox 佈局
- JavaFX BorderPane 佈局
- JavaFX StackPane 佈局
- JavaFX TextFlow 佈局
- JavaFX AnchorPane 佈局
- JavaFX TilePane 佈局
- JavaFX GridPane 佈局
- JavaFX FlowPane 佈局
- JavaFX CSS
- JavaFX CSS
- JavaFX 多媒體
- JavaFX 處理多媒體
- JavaFX 播放影片
- JavaFX 有用資源
- JavaFX 快速指南
- JavaFX 有用資源
- JavaFX 討論
JavaFX 架構
JavaFX 是一個軟體平臺,允許開發者構建各種內容豐富的客戶端應用程式,這些應用程式可以在多個平臺上保持一致地執行。它是一個完整的 API,擁有豐富的類和介面集,可以構建具有豐富圖形的 GUI 應用程式。該 API 的一些重要包包括:
javafx.animation - 包含用於向 JavaFX 節點新增基於過渡的動畫(例如填充、淡入淡出、旋轉、縮放和平移)的類。
javafx.application - 包含一組負責 JavaFX 應用程式生命週期的類。
javafx.css - 包含用於向 JavaFX GUI 應用程式新增類似 CSS 的樣式的類。
javafx.event - 包含用於傳遞和處理 JavaFX 事件的類和介面。
javafx.geometry - 包含用於定義二維物件並在其上執行運算的類。
javafx.stage - 此包包含 JavaFX 應用程式的頂級容器類。
javafx.scene - 此包提供類和介面以支援場景圖。此外,它還提供子包,例如 canvas、chart、control、effect、image、input、layout、media、paint、shape、text、transform、web 等。許多元件支援 JavaFX 的這個豐富的 API。
在本章中,讓我們學習這個 JavaFX 平臺的架構設計及其元件之間的互連方式。
JavaFX 架構
下圖顯示了 JavaFX API 的架構。您可以看到支援 JavaFX API 的元件。

場景圖
在 JavaFX 中,GUI 應用程式使用場景圖進行編碼。場景圖是構建 GUI 應用程式的起點。它包含被稱為節點的 GUI 應用程式基元。
節點是一個可視/圖形物件,它可能包括:
幾何(圖形)物件 - (二維和三維),例如圓形、矩形、多邊形等。
UI 控制元件 - 例如按鈕、複選框、選擇框、文字區域等。
容器 - (佈局面板),例如邊框面板、網格面板、流面板等。
媒體元素 - 例如音訊、影片和影像物件。
一般來說,節點的集合構成一個場景圖。所有這些節點都按層次結構排列,如下所示。

場景圖中的每個節點只有一個父節點,不包含任何父節點的節點稱為根節點。
同樣,每個節點都有一個或多個子節點,沒有子節點的節點稱為葉子節點;有子節點的節點稱為分支節點。
節點例項只能新增到場景圖一次。場景圖的節點可以具有效果、不透明度、變換、事件處理程式、應用程式特定狀態。
Prism
Prism 是一個高效能硬體加速圖形管道,用於渲染 JavaFX 中的圖形。它可以渲染二維和三維圖形。
為了渲染圖形,Prism 使用:
- Windows XP 和 Vista 上的 DirectX 9。
- Windows 7 上的 DirectX 11。
- Mac 和 Linux、嵌入式系統上的 OpenGL。
如果系統上圖形的硬體支援不足,則 Prism 使用軟體渲染路徑來處理圖形。
與支援的顯示卡或 GPU 一起使用時,它可以提供更流暢的圖形。如果系統不支援顯示卡,則 Prism 預設使用軟體渲染堆疊(上述兩種中的任何一種)。
GWT(Glass Windowing Toolkit)
顧名思義,GWT 提供服務來管理視窗、計時器、表面和事件佇列。GWT 將 JavaFX 平臺連線到本地作業系統。
Quantum Toolkit
它是 Prism、Glass、Media Engine 和 Web Engine 低階元件之上的抽象。它將 Prism 和 GWT 聯絡在一起,並使它們可用於 JavaFX。
WebView
使用 JavaFX,您還可以將 HTML 內容嵌入到場景圖中。WebView 是 JavaFX 的一個元件,用於處理此內容。它使用一種稱為Web Kit的技術,這是一種內部開源網頁瀏覽器引擎。此元件支援不同的 Web 技術,如 HTML5、CSS、JavaScript、DOM 和 SVG。
使用 WebView,您可以:
- 渲染來自本地或遠端 URL 的 HTML 內容。
- 支援歷史記錄並提供前進和後退導航。
- 重新載入內容。
- 將效果應用於 Web 元件。
- 編輯 HTML 內容。
- 執行 JavaScript 命令。
- 處理事件。
一般來說,使用 WebView,您可以從 Java 控制 Web 內容。
媒體引擎
JavaFX 媒體引擎基於一個稱為Streamer的開源引擎。此媒體引擎支援影片和音訊內容的播放。
JavaFX 媒體引擎為以下檔案格式提供音訊支援:
音訊 |
|
---|---|
影片 |
|
包javafx.scene.media包含提供 JavaFX 中媒體功能的類和介面。它以三個元件的形式提供,它們是:
媒體物件 - 表示媒體檔案
媒體播放器 - 用於播放媒體內容。
媒體檢視 - 用於顯示媒體。