1. 程式人生 > >現在Java 桌面應用程式能做到什麼程度(Spring Boot+JavaFX2開發)

現在Java 桌面應用程式能做到什麼程度(Spring Boot+JavaFX2開發)

Spring Boot - JavaFX 2.0應用

很多人對Java開發native程式第一反應還停留在暗灰色單一風格的Java GUI介面,開發方式還停留在AWT或者Swing。本文主要基於SpringBoot和JavaFX開發一個Demo給你展示Java Native應用可以做到什麼樣的程度。當然JavaFX 2.0沒有流行起來也是有原因的,而且目前native的選擇很多,前端是個框架都會搞個native... @pdai

  • Spring Boot - JavaFX 2.0應用
    • 技術背景 - Java 8的新特性之JavaFX2.0
      • 全新現代主題:Modena
      • 用於 CSS 結構的公共 API
      • WebView 增強功能
      • JavaFX Scene Builder 2.0
      • JavaFX 3D
      • 富文字
      • TreeTableView
      • 日期控制元件DatePicker
    • Spring Boot+JavaFX2 Demo介紹
      • 程式載入 - Loader
      • 和WEB一樣風格的GUI
      • 對話方塊 - Popup
      • Web應用嵌入 - Webview
      • 多種主題切換 - Theme
      • 訊息及配置懸浮框 - Message/Configuration...
      • 全屏最大化最小化 - FullScreen/Max/Min/Close
    • 示例程式碼

最全的Java後端知識體系 https://www.pdai.tech, 每天更新中...。

技術背景 - Java 8的新特性之JavaFX2.0

全新現代主題:Modena

新的Modena主題來替換原來的Caspian主題。不過在Application的start()方法中,可以通過setUserAgentStylesheet(STYLESHEET_CASPIAN)來繼續使用Caspian主題。

參考http://fxexperience.com/2013/03/modena-theme-update/

用於 CSS 結構的公共 API

  • CSS 樣式設定是 JavaFX 的一項主要特性
  • CSS 已專門在私有 API 中實現(com.sun.javafx.css 軟體包)
  • 多種工具(例如 Scene Builder)需要 CSS 公共 API
  • 開發人員將能夠定義自定義 CSS 樣式

WebView 增強功能

  • Nashorn JavaScript 引擎 https://blogs.oracle.com/nashorn/entry/open_for_business
  • WebSocket http://javafx-jira.kenai.com/browse/RT-14947
  • Web Workers http://javafx-jira.kenai.com/browse/RT-9782

JavaFX Scene Builder 2.0

視覺化工具,加速JavaFX圖形介面的開發:

JavaFX Scene Builder如同NetBeans一般,通過拖拽的方式配置介面,待完成介面之後,儲存為FXML格式檔案,此檔案以XML描述物件配置,再交由JavaFX程式處理,因此可減少直接以JavaFX編寫介面的困難度。

JavaFX Scene Builder 2.0新增JavaFX Theme預覽功能,選單「Preview」→「JavaFX Theme」選擇不同的主題,包括:

  • Modena (FX8).
  • Modena Touch (FX8).
  • Modena High Contrast – Black on White (FX8).
  • Modena High Contrast – White on Black (FX8).
  • Modena High Contrast – Yellow on Black (FX8).
  • Caspian (FX2).
  • Caspian Embedded (FX2).
  • Caspian Embedded QVGA (FX2).

JavaFX 3D

在JavaFX8中提供了3D影象處理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子類),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子類),SceneAntialiasing等。Camera類也得到了更新。從JavaDoc中可以找到更多資訊。

富文字

強化了富文字的支援

TreeTableView

TreeTable支援

日期控制元件DatePicker

增加日期控制元件

Spring Boot+JavaFX2 Demo介紹

程式載入 - Loader

和WEB一樣風格的GUI

對話方塊 - Popup

Web應用嵌入 - Webview

多種主題切換 - Theme

訊息及配置懸浮框 - Message/Configuration...

全屏最大化最小化 - FullScreen/Max/Min/Close

包括全屏是基於JavaFX的一個元件,不是原生。

示例程式碼

@See https://github.com/realpdai/springboot-javafx-app-demo