![e0d74fe9a76c6e3786f45e31cd810fc0.png](https://i-blog.csdnimg.cn/blog_migrate/339e1e6a77a99a6062b02a0f2dfd8916.png)
- 写在前面:请不要假装努力,结果不会陪你演戏。
依旧是自我javafx小程序编写中遇到的问题:在程序操作过程中有一个操作需要等待的时间相对较长,这个时候如果页面一直处于无提示状态虽然不会有什么问题,但是操作交互体验上会极其迷茫。
因此需要等待的操作可以借鉴web交互中的loading效果,比如下面这种展示方式:
![bd687003c01fc5c17b2cc35309040865.png](https://i-blog.csdnimg.cn/blog_migrate/e0e8afa46bf57ed53bfb4ba73230b924.png)
当页面操作结束或者是程序操作结束之后,页面loading效果消失,在页面持续操作过程之中页面中的其他操作被禁止。
在本系统程序中使用javafx编写,页面展示操作效果为下图中的testConnection操作:
![bcfb930566b2523c2637b64f25c596e4.png](https://i-blog.csdnimg.cn/blog_migrate/163970f4608f6256943c3336d1c17eff.png)
下面是编写loading的页面组件的代码,关键位置的文本内容以及loading效果图的位置已经标出来了。
![bc6ade3c4f69531a481a594b9901ca37.png](https://i-blog.csdnimg.cn/blog_migrate/d16864d5901f5687c54a235e5499800e.jpeg)
Loading素材贴在下面:
![d7020edbbc7314f9a58c1e5dca53f8ad.png](https://i-blog.csdnimg.cn/blog_migrate/fbc86a0234162baca093ab5f09caa2e9.png)
Loading页面牵涉到的css效果代码:
![c0f4f775d2e8348377e4dc1c17faddbb.png](https://i-blog.csdnimg.cn/blog_migrate/cf8eb7f23d813579a30f86dfc597935d.png)
编写loading加载和移除的工具类,主要是使用load方法加载指定位置的fxml文件,具体操作代码为:
![7484d341312cda7994b6de81925a0d23.png](https://i-blog.csdnimg.cn/blog_migrate/b1c629ccea2d96168a0419bcb301166f.png)
其中loadingDefaultf方法主要是加载操作,并且返回当前遮罩的位置,因为loading不会自己消失,所以在适当的位置可以使用方法返回的遮罩对象再次使用remove方式进行移除操作。这里,你也可以针对代码进行改进操作,设置延时参数,当超过指定的延时操作时页面的loading自动消失。
口说无凭,看下最终的实现效果:
![bce488dd571f47f3347f6344e534998c.png](https://i-blog.csdnimg.cn/blog_migrate/b9301089aa4c7734b807d363183784ee.png)
上面给出了关键代码和演示效果,
需要更详细的代码可以 私信我 || wechat
![0986eb6ba871390746dd29f66d841749.png](https://i-blog.csdnimg.cn/blog_migrate/72b4b26bcc650dfd648cb7a280c0e5e5.png)