基本概念及框架
-
JavaFX界面组成元素:
–stage:窗口,JavaFX最基本的界面,其他组件都是在此基础上搭建,实际显示效果就是一个可放大、缩小、关闭的弹窗。
–scene:场景,在stage基础上进行显示,需要与Pane进行绑定
–pane:布局,用来定义scene中元素的布局形式,与scene绑定,并且实际开发中一般与fxml文件一一对应,即一个xml文件会有一个对应的pane
–node:即界面元素,包括文本框、按钮等,均可以在fxml文件中定义。以上便是一个JavaFX页面的层级关系。
-
fxml文件:
一个资源文件,该文件直接定义了每个JavaFX界面的内容、大小等。
开发工具:Scene Builder,该工具可以直接打开fxml文件,实时展示其显示效果,并调整,相较于编写fxml文件更容易得到反馈,idea自带也可下载软件(idea自带体验不佳,最新版本idea已优化,但不知实际效果如何)。
-
开发逻辑:
每个fxml通过在文件中设置属性:fx:controller=“类路径”
可以将该fxml文件与类绑定,然后在类中就可以利用注释获得fxml文件中的元素,例如,fxml文件中有:<Button fx:id="confirm" />
在类中,可以这样使用:
@FXML
private Button confirm;
confirm.setText("按钮名")
如上代码,在fxml或类中都可以获得元素。
fxml文件直接对应view层,而JavaFX这种fxml与类的绑定方式,简直是为MVVM模式量身定做,即view层与ViewModel层双向绑定。
那么stage、scene、pane呢?接着往下看。
首先看一个hellword级的的JavaFX应用程序的代码: