JavaFX之springboot-javafx-support解析


前言:springboot-javafx-support將Spring Boot與JavaFx 8鏈接在一起。讓您所有的視圖和控制器類都成爲Spring Bean,並利用Spring Universe中的所有功能。

一:項目結構

在這裏插入圖片描述

二:AbstractJavaFxApplicationSupport

AbstractJavaFxApplicationSupport是springboot-javafx-support的核心類,繼承了javaFX的Application類

launch
init
start
stop

上圖:javaFX核心方法執行順序
springboot-javafx-support對其也進行了重寫(除launch)
在其中

  • launch
    springboot-javafx-support並沒有重寫Application的launch()方法,而是對其進行調用,不過在調用之前,進行了以下操作:
    1. savedInitialView(保存初始界面視圖實例)
    2. savedArgs(保存command參數)
    3. splashScreen(判斷splashScreen(閃屏)實例是否可用,否則新建實例)
    4. SystemTray(判斷OS是否支持系統托盤,保存托盤實例到GUIState單例中)
    5. Application.launch (啓動JavaFX)

    系統托盤(System Tray)就是 最小化圖標,程序以最小化圖標的方式保持運行狀態,Windows系統最小化到右下角的底部任務欄,MAC OS X 最小化到頂部菜單欄,如下圖所示:
    在這裏插入圖片描述
    在這裏插入圖片描述

  • init
    重寫Application的init()方法
    1. 異步啓動springboot主程序,將springboot應用上下文添加到springboot-javafx-support
    2. 加載應用圖標
    3. springboot啓動完成後啓動javaFX
    4. 再開一線程異步加載閃屏線程

注意:線程在JavaFX應用程序線程上運行指定的Runnable

  • start
    重寫Application的start()方法
    1. 用單例GUIState保存當前舞臺
    2. 是否加載閃屏動畫,(注意:不管是否加載,閃屏線程已經開啓(在init中))
    3. 顯示初始視圖並關閉閃屏動畫(閃屏線程完成)
  • stop
    super父類stop,關閉spring應用上下文

springboot-javafx-support 其他公共方法

  1. beforeShowingSplash(Stage splashStage):可以在閃屏動畫啓動之前進行一些操作
  2. beforeInitialView(final Stage stage, final ConfigurableApplicationContext ctx):在初始視圖加載之前,添加操作
  3. showView(final Class<? extends AbstractFxmlView> newView):顯示一個新的視圖

上面的方法都在start中有調用,其中show()可以在切換界面是使用

  1. showView(final Class<? extends AbstractFxmlView> window, final Modality mode):可以另外開一個自定義的窗口,不過需指定父級層
  2. setTitle(final String title) :設置應用標題

提示,應爲這個使用的一個單例保存的舞臺實例,所以設置標題可以在視圖加載之前的任意方法中都可調用(構造函數虛繼承父類構造),init,beforeShowingSplash,beforeInitialView, showView,start)

三:@FXMLController

@FXMLControllerspringboot-javafx-support的註解
表明這是一個FXML處理器,它會給控制器添加一個@Component的註解,將類交給spring容器管理。

四:@FXMLView

@FXMLViewspringboot-javafx-support的註解
表示要在JavaFX視圖的上下文中使用的類。這些類與fxml標記文件結合使用。它會給控制器添加一個@Component的註解,將類交給spring容器管理。

五:GUIState

在虛擬機(javafx)中保存場景和舞臺實例(單例)

六:Constant

配置文件application.properties裏面的鍵,配合PropertyReaderHelper可以讀取設置的值
在這裏插入圖片描述
在這裏插入圖片描述

七:SplashScreen

閃屏動畫,就是啓動動畫

  1. 可以重寫此項以創建自己的初始窗格父節點。
  2. 是否顯示閃屏動畫
  3. 更改啓動圖片

八:AbstractFxmlView

AbstractFxmlView :它通過Spring爲Java FX控制器提供DI,同時支持使用註解@FXMLView來驅動,配置fxml,css等

getView():主要方法,通過加載FXML初始化視圖(如果尚未發生),並返回在FXML文件中指定的頂級節點(父節點)。
在這裏插入圖片描述

注意:繼承AbstractFxmlView時子類需以View結尾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章