JAVA 闪屏 SplashScreen 程序启动画面 浅谈

来源:互联网 发布:手机易语言编程软件 编辑:程序博客网 时间:2024/04/30 23:32

最近做一个JAVA小程序,启动的时候总感觉有些慢,想起eclipse或netbeans启动的时候都有个启动画面,不如自己也做个吧。

然后就开始查找相关资料。


SplashScreen

在 Java 虚拟机 (JVM) 启动之前,可以在应用程序启动时创建闪现屏幕。闪现屏幕显示为一个包含图像的未装饰窗口。可以使用 GIF、JPEG 和 PNG 文件作为图像。支持动画(用于 GIF)和透明度(用于 GIF、PNG 文件)。窗口位于屏幕的中心(在多监视器系统中的位置没有指定——它与平台和实现有关)。一旦 Swing/AWT 显示第一个窗口,此窗口就会自动关闭(也可以使用 Java API 手动关闭窗口,参见以下内容)。


1.6的API里提供了这个功能。

显示本机闪现屏幕有两种方式:

  • 如果是用命令行或快捷方式运行应用程序,则使用 "-splash:"Java 应用程序启动器选项来显示闪现屏幕。
    例如:
    java -splash:filename.gif Test 
  • 如果应用程序被打包在 jar 文件中,可以使用清单文件中的 "SplashScreen-Image" 选项来显示闪现屏幕。将图像放在 jar 归档文件中并用选项指定路径。路径不应以斜杠开头。
    例如,在 manifest.mf 文件中:
    Manifest-Version: 1.0Main-Class:TestSplashScreen-Image:filename.gif 
    命令行接口的优先级高于清单设置。 
经过我测试,用第二种方法比较实际一些,这里分享一下代码:


SplashScreen splash = SplashScreen.getSplashScreen();//创建闪屏对象if (splash == null) {System.out.println("没有指定闪屏图片");//JOptionPane.showMessageDialog(null, "没有找到闪屏图");}Graphics2D g2 = splash.createGraphics();//绘制闪屏Rectangle bounds = splash.getBounds();//返回闪屏边界splash.update();


把这些代码加到程序入口class的main方法最前边执行。但是光有这个代码是不行的,还需要一个图片,而且还要 manifest.mf清单文件中设置命令。
1.首先设置  manifest.mf 清单中的命令,其实很简单,用RAR相关软件直接打开.jar包,然后编辑 manifest.mf文件,写入代码SplashScreen-Image:你的图片.gif。然后保存。2.图片要放到哪里呢?是不是和JAR包放到同一个目录?我一开始也是这样放的,但经测试是行不通的。应该用rar软件打开.jar文件,然后把图片托到根目录里,当然我这个目录是和现在的代码相对应的,如果你修改了目录,请放到对应的目录里。经过以上两步设置就可以实现了。

问题:
关于打包jar,这个我测试了一下用netbeans 可以直接创建相关文件在src class文件夹里,然后打包可以实现不用rar文件再去修改。
eclipse需要先打包然后再用rar软件打开再去修改。
无论两者哪个IDE,直接测试都是无效果的。关于加载进度条,如果上边的功能实现,一般小程序做个GIF动画加载效果就可以了,超大型的,你可以考虑动态载进度了,这个本文不再研究。

有问题请留言

0 0