一、Javafx认识
javaFx 是java的一种开发桌面程序的技术。之前我用过c#的winform,java swing 都是传统的纯c/s开发,似乎和web开发没有任关系。后来接触了javafx 发现在结构很像mvc,如果习惯了web开发,用javafx还是非常方便的。
接下来我将记录和介绍学习javafx的过程。
二、javafx 简单程序搭建
实现的主要功能:由两个界面构成,第一个界面可以在文本框中显示内容,和打开第二个窗体
知识点:了解fxml与后台代码的关系,怎样交互,css样式使用,控件在使用,几种布局方式。
现在开始推搭建:
1.首先配置java环境,要用jdk1.8+。IDE选用idea 比较方便,因为jdk1.7以上集成了scene builder,可以在idea中不用配置直接使用。
也遇到过不能打开的,需要下载scene builder。 这里就以下载并配置为例,下载地址https://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-1x-archive-2199384.html
2.下载完成后点击默认安装,打开idea->setting->搜javafx->配置scene builder安装路径(选到exe文件)
3.file->new->project->javafx 就可以新建一个javafx项目,并运行展示效果了。这种比较简单,在实际项目中这样的项目的结构不方便使用,最好用maven构建。所以file->new->project->maven按照步骤完成
4.建立入口程序MainApp继承Application,重写start方法
注意getResource路径问题,用maven项目一般非java文件要放到resources下面,resources的目录就是程序运行的根目录所以可以用“/”获取下面的资源文件,如本项目的目录结构为:
5.fxml介绍
fxml是javafx的视图文件,可以配置布局,样式,有点像web的html文件,与后台代码解藕,不用像swing那样需要在java代码中添加控件和布局,打开文件点击scene builder可以视图方式查看,可以在这种方式下拖动控件添加,也可以切换txt,写代码添加
关于布局这里介绍三种:
1.GridPanel 这是表格布局,可以设置行和列,形成一个个格子,换控件添加到格子里,通过设置gridpanel.
columnIndex和rowIndex进行定位,还可以columnSpan和rowSpan进行跨行。列和行可以设置成随窗体大小自适应
2.BorderPanel 是一种自适应布局,分上中下左右,一般作为底层容器或内容显示区很方便
3.AnchorPanel 可以理解为绝对定位布局,只有这种方式在视图编辑模式随意拖动控件确定位置,这种布局不是自适应的,相对于左上角确定位置。如果窗体大小是固定的用这种方式,非常方便。
现在只介绍这三种,其它以后用它再说。开发中很少单独用一种布局,一般都是搭配使用的。
6.fxml与后台代码
fxml的panel可以设置fx:controller指定后台的类,实中可以通过注解@fxml注入fxml的控件,注意控件是通过id和控件名对的应的,即:fcml定义了fx:id,controller类中的控件名要和id一致才能绑定。控件还可以通过 onAction与类中的方法绑定,方法的参数类型要为 ActionEvent
7.fxml与css
fxml中可以可设置css,只用在根节点即panel中设置 stylesheets即可。
css样式分为:
类型选择器:“.”+"控件名字小"写如果控修的是多个单词组成,则以下划线连接
类选择器:“.”+自定义名字
id选择器:“#”+id名
控件可以通过styleClass指定类选择器,可以覆盖(合并)父节点引入的的类型选择器
写得有点累。。。也结束了,下一节介绍javafx+spirng boot+mybatis
最后看一下效果图