我用java写了个壁纸软件

项目及软件下载地址:https://gitee.com/missyouch/desserts

exe下载地址(解压可用免安装,不要放桌面):https://gitee.com/missyouch/desserts/attach_files/593671/download/IceoLogy.7z

用Javafx做的一个壁纸软件,每天自动更新壁纸,可以选择壁纸类型,刷新频率等等

 IceoLogy壁纸启动动画及logo(淘宝30块买的):

          我用java写了个壁纸软件_第1张图片

IceoLogy壁纸软件设置界面:

我用java写了个壁纸软件_第2张图片

 做这个壁纸软件的初衷是一个妹子给我说,她的壁纸很不好看,但是下载的壁纸软件广告又很烦,让我帮忙解决下广告,我自然干不了面向监狱的破解别人软件的事情;再在网上搜索一圈发现有很多高清图片接口,于是就自己动手做了这个壁纸软件,取名为IceoLogy.

页面用javafx实现的,至于为啥要使用javafx,因为我本身是做Java的,所以也就顺理成章的用了Javafx,我以前也没接触过Javafx,也是一边做一边学,两周做了这两个页面,基本上也就把Javafx掌握了,由此也发现了一个比较好的学习方法,以自己的需要去逐渐掌握各个组件,要是一个个组件学会再来做,恐怕至少要一个月吧。

使用javafx的感受:

优点:

第一感受,简单易用,会java和一点前端常识(html和css的关系,选择器之类的),基本不用刻意去学,照着api很容易就能实现自己想要的东西,还可以用WindowBuilder拖拽可视化编程,我就这两个页面没使用。实现的页面也很精美,不像swing那么丑。

缺点:

1. 首先网上的文档资料太少了,我遇到问题完全是靠qq群中的小伙伴互帮互助。

2. 第二个缺点就是要实现什么样式完全靠自己去造轮子,没有强大的现成库支持(也或许是我没找到),就像后端用servlet和jdbc开发一样难受,没有像后端的那些强大框架的支持。

3. 第三个缺点,也是我觉得最大的缺点,打包太难了,真的太难了,搞得我这老油条一度都想放弃,还别说新入门的萌新,打出来的包还很大,加上要依赖jre,这样体量至少200M了,虽然java11以后可以模块化,定制自己需要的jre,但是需要自己用jdeps 命令去分析自己的jar需要哪些模块,这一分析就是上百项,自己去重后也就十多项吧,再用jlink命令打成自己需要的jre;这个真不是人干的事,靠人力去找着一个一个的模块,也不知道oracle的这些大佬是怎么想的,下一步准备自己写一个这方面的可视化简化软件。

项目结构:

我用java写了个壁纸软件_第3张图片

运行逻辑(就不画流程图了,比较简单):

1.启动展示logo,如果用户设置了壁纸喜好等,就直接进入后台逻辑,没有设置则展示设置界面。

2,用户点设置界面开始或开机启动后进入后台逻辑:

  1.     判断今日,昨日,是否下载壁纸,今日已下载则展示今日,今日未下载则展示昨日,昨日亦未下载,则说明是首次运行,展示默认的壁纸,在进入下载流程。
  2.    如不是首次运行,则会睡眠用户设置的等待下载时间,这里这样做是为了避免开机就下载,其他很多软件一般也会开机启动,造成用户的电脑很卡。
  3.    等待睡眠完成进入壁纸下载流程,先匹配用户喜好,根据喜好进行图片下载,下载用户设置的数量后,进行壁纸挑选,删除未正确下载的和不适合做壁纸的图片,再进行递归补算挑选。
  4.   下载的质量过关的壁纸满足用户设置的壁纸数量后,关闭开始开启的壁纸线程,开启新的线程展示本次下载的壁纸。
  5.    根据用户的设置清除旧的壁纸

逻辑就这么简单,本项目可以作为javafx入门很好的范本,里面几乎把难搞的问题都踩了一遍,代码也几乎每行都有注释,拿着源码根据自己的需求改改很容易就能做出自己的页面程序。现在将源代码及软件开源,后续有时间也将持续更新,欢迎参与开发,做我们开发人自己的壁纸,让我们的壁纸不再有烦人的广告!!!如果你有好的点子,想法,需求都可以在评论区留言或私信我,我看到也将在第一时间回复和考虑添加!

近期暂不更新了,我的spring cloud系列教程《spring cloud多模块项目框架搭建》还没写完,这几周玩这个停止了更新,有些小伙伴开始私信催更了,至少等我把spring cloud这一系列博客写完再来更新维护吧。真的希望有大佬能加入本项目,或者是开发上面提到的自定义jre可视化简化程序的开发队伍中,个人的时间真的是太有限了,奈何还是个打工人(手动狗头)。

 

最后感谢这位大佬收集壁纸提供,他的个站真的是个宝库:https://www.qian.blue/archives/SanQianZhiTu-random_img.html

你可能感兴趣的:(Java,java,javafx)