如果您的应用程序打包在jar文件中,可以在MANIFEST.MF文件中使用"SplashScreen-Image"选项显示闪屏。将图像放在jar存档中,并在选项中指定路径。路径不应以斜杠开头。
例如,在manifest.mf文件中:
Manifest-Version: 1.0 Main-Class: Test SplashScreen-Image: filename.gif
如果Java实现提供命令行界面,并且您通过命令行或快捷方式运行应用程序,请使用Java应用程序启动器选项显示闪屏。Oracle参考实现允许您使用-splash:选项指定闪屏图像位置。
例如:
java -splash:filename.gif Test还支持HiDPI缩放图像。无缩放图像名称,即filename.gif,应传递给
manifest.mf/-splash:选项,无论是HiDPI还是非HiDPI的所有图像类型。以下是缩放图像的命名约定。屏幕比例1.25:filename@125pct.gif 屏幕比例1.50:filename@150pct.gif 屏幕比例2:filename@200pct.gif 和filename@2x.gif都受支持 屏幕比例2.50:filename@250pct.gif 屏幕比例3:filename@300pct.gif 和filename@3x.gif都受支持 命令行界面优先于MANIFEST设置。
在目标平台和显示的限制下,闪屏将尽可能忠实地显示整个闪屏图像。
暗示指定的图像按原样呈现在屏幕上,即保留图像文件中指定的确切颜色值。但在某些情况下,显示的图像可能会有所不同,例如,在将32位每像素(bpp)图像应用颜色抖动以显示在16位或8位bpp屏幕上时。本机平台显示配置也可能影响显示图像的颜色(例如,颜色配置文件等)
SplashScreen类提供了控制闪屏的API。此类可用于关闭闪屏、更改闪屏图像、获取闪屏本机窗口位置/大小以及在闪屏上绘制。不能用于创建闪屏。您应该使用Java实现提供的选项来创建闪屏。
此类无法实例化。只能存在一个此类的实例,并且可以通过使用getSplashScreen()静态方法获取。如果在应用程序启动时未通过命令行或MANIFEST文件选项创建闪屏,则getSplashScreen方法返回null。
- 自版本:
- 1.6
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()隐藏闪屏,关闭窗口,并释放所有相关资源。为闪屏叠加图像创建图形上下文(作为Graphics2D对象),允许您在闪屏上绘制。返回闪屏窗口的边界作为Rectangle。返回当前闪屏图像。getSize()返回闪屏窗口的大小作为Dimension。static SplashScreen返回用于控制支持显示的系统上Java启动闪屏的SplashScreen对象。boolean确定闪屏是否可见。voidsetImageURL(URL imageURL) 更改闪屏图像。voidupdate()使用叠加图像的当前内容更新闪屏窗口。
-
Method Details
-
getSplashScreen
返回用于控制支持显示的系统上Java启动闪屏的SplashScreen对象。- 返回:
-
SplashScreen实例,如果没有或已关闭,则返回null - 抛出:
-
UnsupportedOperationException- 如果当前工具包不支持闪屏功能 -
HeadlessException- 如果GraphicsEnvironment.isHeadless()返回true
-
setImageURL
public void setImageURL(URL imageURL) throws NullPointerException, IOException, IllegalStateException 更改闪屏图像。新图像从指定的URL加载;支持GIF、JPEG和PNG图像格式。该方法在图像加载完成并窗口已更新后返回。闪屏窗口根据图像大小调整大小,并居中显示在屏幕上。- 参数:
-
imageURL- 新闪屏图像的非nullURL - 抛出:
-
NullPointerException- 如果imageURL为null -
IOException- 如果加载图像时出现错误 -
IllegalStateException- 如果闪屏已关闭
-
getImageURL
返回当前闪屏图像。- 返回:
- 当前闪屏图像文件的URL
- 抛出:
-
IllegalStateException- 如果闪屏已关闭
-
getBounds
返回闪屏窗口的边界作为Rectangle。如果,例如,您想要在相同位置用您的窗口替换闪屏,则可能会有用。您无法控制闪屏的大小或位置。当图像更改时,闪屏大小会自动调整。
图像可能包含透明区域,因此报告的边界可能比屏幕上可见的闪屏图像大。
- 返回:
-
包含闪屏边界的
Rectangle - 抛出:
-
IllegalStateException- 如果闪屏已关闭
-
getSize
返回闪屏窗口的大小作为Dimension。如果,例如,您想要在闪屏叠加表面上绘制,则可能有用。您无法控制闪屏的大小或位置。当图像更改时,闪屏大小会自动调整。
图像可能包含透明区域,因此报告的大小可能比屏幕上可见的闪屏图像大。
- 返回:
-
表示闪屏大小的
Dimension对象 - 抛出:
-
IllegalStateException- 如果闪屏已关闭
-
createGraphics
为闪屏叠加图像创建图形上下文(作为Graphics2D对象),允许您在闪屏上绘制。请注意,您不是在主图像上绘制,而是在使用alpha混合显示在主图像上的图像上绘制。还请注意,在叠加图像上绘制不一定会更新闪屏窗口的内容。当您希望立即更新闪屏时,应在SplashScreen上调用update()。图形上下文的坐标空间中的像素(0, 0)对应于闪屏本机窗口边界的原点(请参见
getBounds())。- 返回:
- 闪屏叠加表面的图形上下文
- 抛出:
-
IllegalStateException- 如果闪屏已关闭
-
update
使用叠加图像的当前内容更新闪屏窗口。- 抛出:
-
IllegalStateException- 如果叠加图像不存在;例如,如果从未调用createGraphics,或者如果闪屏已关闭
-
close
隐藏闪屏,关闭窗口,并释放所有相关资源。- 抛出:
-
IllegalStateException- 如果闪屏已关闭
-
isVisible
public boolean isVisible()确定闪屏是否可见。可以使用close()隐藏闪屏,当第一个AWT/Swing窗口可见时,闪屏也会自动隐藏。请注意,本机平台可能会延迟在屏幕上显示闪屏本机窗口。此方法的返回值为
true仅保证尚未发生隐藏闪屏窗口的条件。- 返回:
- 如果闪屏可见(尚未关闭),则为true,否则为false
-