1、JavaFX应用的程序基本结构

javafx 怎么使用jar包 javafx教程_xml文件

窗口(stage):窗口里面可以设置场景,但是一次只能显示一个场景。

场景(scene):场景可以添加UI组件图的树形结构。

根节点(parent):根节点设置为一个布局,放置不同的节点(组件)。可以在根节点嵌套放置根节点。

javafx 怎么使用jar包 javafx教程_JavaFX_02

2、JavaFX应用的Application

执行顺序是 init() -> start() -> stop()

javafx 怎么使用jar包 javafx教程_xml文件_03

3、JavaFX应用的Stage

Title标题文本

javafx 怎么使用jar包 javafx教程_JavaFX_04

 icon图标

javafx 怎么使用jar包 javafx教程_JavaFX_05

resiziable窗口大小控制

javafx 怎么使用jar包 javafx教程_UI_06

initStyle设置窗口样式,StageStyle窗口样式

javafx 怎么使用jar包 javafx教程_xml文件_07

x,y,width,heigth坐标,宽,高

javafx 怎么使用jar包 javafx教程_UI_08

Modality窗口是否是模态的

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_09

event窗口事件

javafx 怎么使用jar包 javafx教程_UI_10

4、JavaFX应用的Scene

需求:1、场景切换;2、修改鼠标样式。

javafx 怎么使用jar包 javafx教程_JavaFX_11

5、Node UI控件的通用属性

Node类是一个抽象类,所有控件的父类都是Node。以下简单介绍下常用的方法:

◆ layoutX / layoutY / preWidth / preHeight

◆ style / visible / opacity / blendMode

◆ tanslateX / tanslateY / rotate / scaleX / scaleY /scaleZ

◆ parent / scene / id

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_12

6、UI控件的属性绑定和属性监听

效果:           拖动窗口前 ↓↓↓↓↓                                                                  拖动窗口后坐标改变 ↓↓↓↓↓

javafx 怎么使用jar包 javafx教程_java_13

javafx 怎么使用jar包 javafx教程_JavaFX_14

javafx 怎么使用jar包 javafx教程_UI_15

下面是加上界面显示x、y的中心坐标

javafx 怎么使用jar包 javafx教程_JavaFX_16

7、JavaFX应用里的事件驱动编程

1、按钮点击事件以及键盘事件

效果:

javafx 怎么使用jar包 javafx教程_UI_17

代码:

javafx 怎么使用jar包 javafx教程_java_18

 

javafx 怎么使用jar包 javafx教程_java_19

 2、文件上传:拖拽文件到文本域,鼠标松开后获取到文件的绝对路径

效果:

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_20

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_21

 代码:

javafx 怎么使用jar包 javafx教程_java_22

 3、设置事件,只需要重写一个方法时,可以用lambda表达式简写:

javafx 怎么使用jar包 javafx教程_java_23

8、Color、Font和Image

1、Color

效果:                                                   代码:

javafx 怎么使用jar包 javafx教程_JavaFX_24

   

javafx 怎么使用jar包 javafx教程_JavaFX_25

2、Font

系统字体一般在C:\Windows\Fonts目录下

效果:                                  代码:

javafx 怎么使用jar包 javafx教程_JavaFX_26

    

javafx 怎么使用jar包 javafx教程_UI_27

 3、Image

 效果:                                         代码:

javafx 怎么使用jar包 javafx教程_java_28

 

javafx 怎么使用jar包 javafx教程_UI_29

9、FXML布局文件的使用

在学习FXML之前,我们的代码都是直接写在类里面的,比方实现一个点击按钮字体移动的效果,我们以前写的代码如下:

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_30

    

javafx 怎么使用jar包 javafx教程_UI_31

现在用FXML文件管理组件

1、主方法的start方法中加载fxml文件,并放置场景中

javafx 怎么使用jar包 javafx教程_java_32

2、fxml文件的配置和Controller配置组件属性和事件方法

javafx 怎么使用jar包 javafx教程_java_33

10、Scene Builder构建 fxml布局文件

1、首先要下载 Scene Builder | JavaFX中文官方网站

因为我是Win10的64位系统,这里我选择Windows64位安装,安装步骤就是一路next,最后finish。

javafx 怎么使用jar包 javafx教程_java_34

2、Scene Builder的使用

2.1 安装好后,打开程序,先拖拽一个Containers下的AnchorPane进来

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_35

2.2 同上,我们可以往布局里面添加组件

javafx 怎么使用jar包 javafx教程_java_36

 2.3 对组件进行样式调整

javafx 怎么使用jar包 javafx教程_UI_37

 2.4 给组件设定事件,生成controller层代码

javafx 怎么使用jar包 javafx教程_UI_38

 2.5 ctrl + s 保存到桌面,把fxml复制到idea项目中,写一个Controller,把生成的Controller复制到Controller中

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_39

 

javafx 怎么使用jar包 javafx教程_JavaFX_40

 2.6 在fxml中把controller路径配上

javafx 怎么使用jar包 javafx教程_JavaFX_41

以上大致就完成了,其他的controller中的方法和main方法中的写法可以参照前面第9点所讲的内容编写。

11、Controller里面的initalize方法

案列:初始化时加载表格中的数据

1、定义一个对象                                                                         

javafx 怎么使用jar包 javafx教程_JavaFX_42

    

2、Controller层写initialize()方法

 

javafx 怎么使用jar包 javafx教程_xml文件_43

12、Application里操作Controller

1、在Controller里写一个方法

javafx 怎么使用jar包 javafx教程_UI_44

2、在Application类中调用Controller的方法

javafx 怎么使用jar包 javafx教程_javafx 怎么使用jar包_45

这里提供一个小技巧:在idea的Settings里面搜索javafx,设置安装SceneBuildert的安装路径,然后就可以在fxml文件中右键选择Open In SceneBuildert中直接打开软件,在软件内编辑完后保存,就可以直接更新fxml文件了

javafx 怎么使用jar包 javafx教程_UI_46

 

javafx 怎么使用jar包 javafx教程_UI_47

13、JavaFX多线程操作Platform.runLater

为了线程的安全考虑,在JavaFX程序里,为了避免其他线程污染UI的数据,是不允许除主线程之外的其他线程去刷新或更改UI的。

javafx 怎么使用jar包 javafx教程_UI_48