Java开发桌面程序学习(九)——JavaFxTemplate JavaFx模版 更简单进行JavaFx程序开发
javafxtemplate
使用说明
项目基于maven,请确保maven配置成功,否则,可能会出现问题
项目内置了commons-io的jar包,jfoenix的jar包以及常用的工具类jfxutils
,具体使用请看注释!
原本是想将jfxutils
单独出来,打成一个jar包,不过,项目引用之后一起打成jar包,项目的jar包跑不起来,报找不到类的错误。
复制该项目,修改项目名,之后修改pom.xml中的 groupid,artifactid,version。
打开idea,main.java的里面需要重新导入一下包名,之后即可成功运行。
打jar包的时候,需要注意,把meta-inf的路径设置在out目录下,否则,运行jar包会失败,如下图
jfxutils使用说明
介绍
这是一个jfx的工具库,intent可以简单地实现打开一个新窗口并传递数据,dialogbuilder可以简单地生成对话框,myutils有些常用的功能
使用
- myutils 封装了一些常用的的方法
- intent与basecontroller 打开新窗口,并传递数据
-
dialogbuilder 基于jfoenix,快速生成material design风格的对话框
intent的使用
使用intent,可以打开一个新窗口,还能传递数据
如何使用?
打开一个新窗口
步骤:new一个intent,调用start方法即可
下面是几种不同的构造方法
- intent(string fxmlname)
- intent(string fxmlname, string title)
- intent(string fxmlname, string title,string iconname)
- intent(string fxmlname, int width, int height)
- intent(string fxmlname, int width, int height, string title)
- intent(string fxmlname, int width, int height, string title, string iconname)
ps:
-
fxmlname
fxml的名字,不需要写扩展名
-
iconname
图标名,需要写扩展名
例子:
- 简单例子
//在一个controller中 //fxml名字为test //默认宽高 600*400 intent intent = new intent("test"); //打开新窗口 intent.start();
- 设置标题
intent intent = new intent("test","hello world"); intent.start();
- 设置宽高
intent intent = new intent("test",800,400); intent.start();
打开新窗口并传递数据
本工具中,有一个basecontroller
,想要传递数据,就得让controller
继承这个basecontroller
,之后,new一个intent
,使用adddata
方法传入数据
可以传递的数据类型有int
,boolean
,string
,list
,object
- adddata(string key, int data)
- adddata(string key, boolean data)
- adddata(string key, string data)
- adddata(string key, list<?> data)
- adddata(string key, object data)
在controller中getintent得到intent的实例,之后通过以下方法获得数据
- getdatainteger(string key)
- getdataboolean(string key)
- getdatastring(string key)
- getdatalist(string key,class
clazz) - getdataobject(string key) 需要转型
例子:
//某个controller中打开新窗口,并传递list数据 intent intent = new intent("test",800,400); intent.adddata("list",studentlist); intent.start(); //test对应的controller,接收list数据 package wan.dormsystem.controller; import java.net.url; import java.util.list; import java.util.resourcebundle; import wan.dormsystem.bean.student; /** * @author starsone * @date create in 2019/6/21 0021 16:44 * @description */ public class testcontroller extends basecontroller { @override public void initialize(url location, resourcebundle resources) { //这里一定要有判断,不然会有空指针异常 if (getintent() != null) { list<student> list = getintent().getdatalist("list", student.class); for (student student : list) { system.out.println(student.tostring()); } } } }
dialogbuilder
myutils
- closewindow(control control) 关闭窗口
- image getimg(string filename) 获得图片
- void setlinkautoaction(hyperlink hyperlink) 设置链接自动跳转
- void setlinkaction(hyperlink hyperlink, linkactionhander hander) 设置链接点击事件
更多使用详情,可以直接去javafxtemplate中的具体类中查看
上一篇: 单页面开发和多页面开发的区别
下一篇: starshot常见问题(New)