JavaFx
2021-11-02 13:59:53 44 举报
AI智能生成
JavaFX是一个强大的图形用户界面(GUI)框架,用于创建和构建跨平台的桌面应用程序。它是Java语言的一部分,提供了丰富的功能和工具,使开发者能够轻松地设计和实现吸引人的用户界面。JavaFX基于JavaFX Script,这是一种声明式编程语言,类似于HTML和CSS,使得布局和设计更加直观和易于管理。JavaFX还支持动画、音频和视频处理,以及各种交互功能,如拖放、缩放和旋转等。通过JavaFX,开发者可以创建出具有高度可定制性和响应性的应用程序,满足不同平台和设备的需求。总之,JavaFX是一个强大且灵活的工具,适用于开发各种类型的桌面应用程序。
作者其他创作
大纲/内容
版本说明
JavaFX2
JavaFX8
优点
支持比较稳定的JDK8版本
支持大部分打包方式<br>Maven、Gradle、JPackage等<br>
组件库比较丰富<br>ControlsFX、Metro、JFoenix等
有现成的Springboot支持<br>JavaFX-Springboot-support<br>
缺点
开发时需要依赖整个JDK
打包成可执行文件后整个包比较大<br>光JRE部分可能就已经超100M<br>
JavaFX9
Java FX11
优点
支持比较稳定的JDK11版本
支持大部分打包方式<br>Jlink、Maven、Gradle、JPackage等
支持JDK11的相关组件库<br>ControlsFX、Metro等<br>
Jlink打包后体积缩小很多<br>除去程序部分,运行环境可以在30-50M左右<br>
使用Open-Javafx作为开发依赖
缺点
不支持Springboot<br>如要使使其支持,需要按照JDK11重写JavaFX-springboot-support<br>
开发稍微复杂一些<br>模块化开发需要配置module信息<br>
组件库支持少
前期环境搭建耗时比较多一些
结构及使用
结构
FXML
头部信息<br><?xml version="1.0" encoding="UTF-8"?><br>
导入库信息<br>可以通过import标签来导入页面所需要的组件库<br>
视图内容信息<br>通过xml标签形式将组件放置内容在fxml内
指定Controller<br>在跟节点中指定fx:controller信息<br>
页面标签指定在Controller中对应的控件实例<br>在需要映射的控件标签内添加fx:id属性并指定对应的名称<br><font color="#f1753f"><b>注意:</b>指定的实例名称以及类型都要与标签的类型以及fx:id一致</font>
Controller
Controller类需要javafx.fxml.Initializable<br>并重写initialize方法,在此方法内可以进行一些初始化过程
fxml中实例映射<br>创建一个类型与FXML中标签类型一致,<br>实例名称与FXML中的名称一致的控件标签(大小写敏感)
布局控件
顶层布局,即主窗口(系统窗口)<br>Stage
场景布局(可相互嵌套)<br>AnchorePane、BorderPane、FlowPane、GridPane、<br>HBox、StackPane、TilePane、VBox、ScrollerPane、<br>SplitPane、TabPane、Group等
基础控件
功能控件<br>CheckBox、ChoiceBox、ColorPicker、TextField、DatePicker、<br>ListView、Menu、ProcessBar、TableView、TreeView、ChartView等
图形控件(2d与3d)<br>Arc、Box、Circle、Line、Polygon、Rectangle、<br>SVGPath、Text<br>
监听
ChangeListener(改变监听)<br>相关Properties类中都会有此监听性设置,<br>用于当值改变时触发相关逻辑<br>
EventHandler(事件监听)<br>主要以鼠标事件、键盘事件等监听为主
使用及开发
开发工具
IntelliJ IDEA <br>
JavaFX Scene Builder 8.5.0<br>FXML布局开发辅助工具
开发过程
创建入口<br>1.需要创建一个入口类并继承javafx.application.Application<br>2.重写start方法,在start方法中引用加入指定初始场景至Stage中<br>3.通过launch方法启动JavaFX程序
加载主场景<br>1.利用FXMLLoader将指定位置的FXML加载到程序中,并获取Parent(Node)<br>2.Stage中创建一个Scene并将scene的root指定为设定为loader加载的Parent
切换场景<br>1.可以在Stage中通过设置不同的Scene来切换<br>2.可以通过主场景中布局控件的Children切换(此方式用的比较多)
控件属性绑定(很重要)<br>每个Property中都有一个Bind方法,如果进行a.bind(b)时,<br>程序将监听放入b一个触发链中,只需触发b的property change事件a也会被触发<br>
自定义组件
创建Control<br>继承javafx.scene.control.Control<br>加入控件属性属性主要为Property类型
创建Skin<br>实现javafx.scene.control.Skinnable接口<br>编写视图样式,以及组件主要功能
0 条评论
下一页