JavaFX教學


JavaFX是Java的下一代圖形化使用者介面工具包。JavaFX是一組圖形和媒體API,我們可以用它們來建立和部署富用戶端應用程式。

JavaFX允許開發人員快速構建豐富的跨平台應用程式。JavaFX通過硬體加速圖形支援現代GPU。

JavaFX允許開發人員在單個程式設計介面中組合圖形,動畫和UI控制元件。

圖表程式設計語言可用於開發網際網路應用程式(RIA)。JavaFX技術主要應用於建立Rich Internet applications(RIAs)。當前的JavaFX包括JavaFX指令碼和JavaFX Mobile(一種運營於行動裝置的作業系統),今後JavaFX將包括更多的產品。JavaFX Script程式設計語言(以下稱為JavaFX)是一種宣告性的、靜態型別指令碼語言。

JavaFX技術有著良好的前景,包括可以直接呼叫Java API的能力。因為 JavaFX Script是靜態型別,它同樣具有結構化程式碼、重用性和封裝性,如包、類、繼承和單獨編譯和發布單元,這些特性使得使用JavaFX技術建立和管理大型程式變為可能。

可用性

JavaFX APIJava SE執行時環境(JRE)和Java開發工具包(JDK)綑綁在一起。
JDK可用於所有主要的桌面平台,WindowsMac OS XLinuxJavaFX應用程式可以在所有主要的桌面平台上編譯和執行。

JDK for ARM平台包括JavaFX的基礎,圖形和控制元件元件。

主要特徵

JavaFX中包含以下功能 -

  • JavaFX是用Java編寫的,JavaFX應用程式程式碼可以從任何Java庫參照API。
  • JavaFX應用程式的外觀和感覺可以客製化。因此可以使用級聯樣式表(CSS)來對JavaFX應用程式進行風格化。平面設計師可以通過CSS自定義外觀和樣式。
  • 還可以在FXML指令碼語言中描述UI的表示方面,並使用Java對應用程式邏輯進行編碼。
  • 通過使用JavaFX Scene Builder,可以通過拖放來設計UI。 Scene Builder將建立可以移植到整合開發環境(IDE)的FXML標記,以便開發人員可以新增業務邏輯。
  • JavaFX有一個稱為WebView的控制元件,可以呈現複雜的網頁。WebView支援JavaScript,我們可以從Java API在Web頁面中呼叫Javascript。 WebView還支援額外的HTML5功能,包括Web通訊端,Web Workers和Web字型,還可以從WebView列印網頁
  • Swing互操作性。 現有的Swing應用程式可以使用JavaFX類,例如圖表和WebView。還可以使用SwingNode類將Swing內容嵌入到我們應用程式中。

  • 3D圖形功能。JavaFX支援Shape,如Box,Cylinder,MeshView和Sphere子類,SubScene,Material,PickResult,AmbientLight和PointLight。

  • Canvas API。 使用Canvas API,可以在JavaFX場景上繪製。

  • 列印API。 javafx.print包提供了JavaFX Printing API的類。
  • 富文字支援。JavaFX支援增強的文字,包括雙向文字和複雜的文字指令碼,例如泰語和印度教的控制元件,以及多行,多種風格的文字。
  • 多點觸控支援,JavaFX提供對多點觸控操作的支援。
  • JavaFX支援Hi-DPI顯示。

UI控制元件

以下列出了JavaFX API中提供的一些內建JavaFX UI控制元件。

  • Label
  • Button
  • Radio Button
  • Toggle Button
  • Checkbox
  • Choice Box
  • Text Field
  • Password Field
  • Scroll Bar
  • Scroll Pane
  • List View
  • Table View
  • Tree View
  • Tree Table View
  • Combo Box
  • Separator
  • Slider
  • Progress Bar
  • Progress Indicator
  • Hyperlink
  • Tooltip
  • HTML Editor
  • Titled Pane
  • Accordion
  • Menu
  • Color Picker
  • Date Picker
  • Pagination Control
  • File Chooser

JavaFX允許UI控制節點和形狀節點在場景圖上共存。
我們可以像任何其他JavaFX節點一樣處理任何UI控制元件,例如可以縮放,旋轉,樣式和新增效果。