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

  • 2019 年 10 月 31 日
  • 筆記

Spring Boot – JavaFX 2.0應用

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

最全的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