最近做一个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.0
Main-Class:Test
SplashScreen-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动画加载效果就可以了,超大型的,你可以考虑动态载进度了,这个本文不再研究。
有问题请留言