java反射运用在javaFX客户端中

3 篇文章 0 订阅
2 篇文章 0 订阅

javaFX应用开发时 必然会涉及到part页面的读取 一个part相当于一个HTML的页面,相对于Swing SWT javaFX开发的CS端的程序不需要使用代码去写页面,而是可以通过工具SceneBuilder拖拽生成类似HTML代码的FXML,怎么样把这个FXML加载到你的客户端中呢?


        首先javaFX提供FXMLLoader对象

protected Parent loadFXML() throws IOException {
FXMLLoader loader = new FXMLLoader();
loader.setClassLoader(getClass().getClassLoader());
loader.setLocation(getClass().getResource(path));
loader.setController(this);
content = loader.load();
return content;
}

这里的part就是要读取FXML的路径,也就是这个FXML文件所在包的路径

这里的setController(this) 指的是 所有的页面FXML都会有一个Controller去控制他 这个controller是一个java类

需要继承有loadFXML这个方法的类

我们姑且给这个类起名叫partParent

       在这个partParent类中依赖注入一个BordePane

再讲方法返回的content  Set给这个BorderPan就实现里页面的读取了

然后

在这里设置对应Controller的路径就可以了


现在有些人可能会有疑问了 ,那这和java反射有什么关系呢?


咱不着急 现在给你们说说


既然所有的Controller都要继承partParent

所以partParent类里肯定有一个path字段

给他的无参构造器加一个

  this.path = this.getClass().getSimpleName() + ".fxml";


这句话什么意思呢

就是让你的Controller和你的FXML名字一样 程序就可以通过这种反射的方式知道里的FXML文件叫什么(FXML和Controller要在一个包下)

这就只要Controller和FXML文件名相同 然后继承了partParent这个类 客户端启动的时候就可以自动读取加载了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值