JavaFX之springboot-javafx-support解析
目录
- 一:项目结构
- 二:AbstractJavaFxApplicationSupport
- 三:@FXMLController
- 四:@FXMLView
- 五:GUIState
- 六:Constant
- 七:SplashScreen
- 八:AbstractFxmlView
前言: 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()方法,而是对其进行调用,不过在调用之前,进行了以下操作:- savedInitialView(保存初始界面视图实例)
- savedArgs(保存command参数)
- splashScreen(判断splashScreen(闪屏)实例是否可用,否则新建实例)
- SystemTray(判断OS是否支持系统托盘,保存托盘实例到GUIState单例中)
- Application.launch (启动JavaFX)
系统托盘(System Tray)就是 最小化图标,程序以最小化图标的方式保持运行状态,Windows系统最小化到右下角的底部任务栏,MAC OS X 最小化到顶部菜单栏,如下图所示:
init
重写Application的init()方法- 异步启动springboot主程序,将springboot应用上下文添加到springboot-javafx-support
- 加载应用图标
- springboot启动完成后启动javaFX
- 再开一线程异步加载闪屏线程
注意:线程在JavaFX应用程序线程上运行指定的Runnable
start
重写Application的start()方法- 用单例GUIState保存当前舞台
- 是否加载闪屏动画,(注意:不管是否加载,闪屏线程已经开启(在init中))
- 显示初始视图并关闭闪屏动画(闪屏线程完成)
- stop
super父类stop,关闭spring应用上下文
springboot-javafx-support 其他公共方法
- beforeShowingSplash(Stage splashStage):可以在闪屏动画启动之前进行一些操作
- beforeInitialView(final Stage stage, final ConfigurableApplicationContext ctx):在初始视图加载之前,添加操作
- showView(final Class<? extends AbstractFxmlView> newView):显示一个新的视图
上面的方法都在start中有调用,其中show()可以在切换界面是使用
- showView(final Class<? extends AbstractFxmlView> window, final Modality mode):可以另外开一个自定义的窗口,不过需指定父级层
- setTitle(final String title) :设置应用标题
提示,应为这个使用的一个单例保存的舞台实例,所以设置标题可以在视图加载之前的任意方法中都可调用(构造函数虚继承父类构造),init,beforeShowingSplash,beforeInitialView, showView,start)
三:@FXMLController
@FXMLController是springboot-javafx-support的注解
表明这是一个FXML处理器,它会给控制器添加一个@Component的注解,将类交给spring容器管理。
四:@FXMLView
@FXMLView是springboot-javafx-support的注解
表示要在JavaFX视图的上下文中使用的类。这些类与fxml标记文件结合使用。它会给控制器添加一个@Component的注解,将类交给spring容器管理。
五:GUIState
在虚拟机(javafx)中保存场景和舞台实例(单例)
六:Constant
配置文件application.properties里面的键,配合PropertyReaderHelper可以读取设置的值
七:SplashScreen
闪屏动画,就是启动动画
- 可以重写此项以创建自己的初始窗格父节点。
- 是否显示闪屏动画
- 更改启动图片
八:AbstractFxmlView
AbstractFxmlView :它通过Spring为Java FX控制器提供DI,同时支持使用注解@FXMLView来驱动,配置fxml,css等
getView():主要方法,通过加载FXML初始化视图(如果尚未发生),并返回在FXML文件中指定的顶级节点(父节点)。
注意:继承AbstractFxmlView时子类需以View结尾
还没有评论,来说两句吧...