- java.lang.Object
-
- java.awt.SplashScreen
-
public final class SplashScreen extends Object
在Java虚拟机(JVM)启动之前,可以在应用程序启动时显示启动屏幕。 启动画面显示为包含图像的未修饰窗口。 您可以将GIF,JPEG或PNG文件用于图像。 GIF格式支持动画,而GIF和PNG都支持透明度。 窗口位于屏幕的中心。 未指定多监视器系统上的位置。 它取决于平台和实现。 一旦Swing / AWT显示第一个窗口,就会自动关闭启动画面窗口(也可以使用Java API手动关闭,见下文)。如果您的应用程序打包在jar文件中,则可以使用清单文件中的“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:文件名支持@ 300pct.gif和filename@3x.gif命令行界面优先于清单设置。鉴于目标平台和显示器的局限性,闪屏将尽可能忠实地显示以呈现整个闪屏图像。
暗示指定的图像“按原样”显示在屏幕上,即保留图像文件中指定的确切颜色值。 但是,在某些情况下,所呈现的图像可能不同,例如,当应用颜色抖动以在16或8bpp屏幕上呈现每像素32位(bpp)图像时。 原生平台显示配置也可能影响显示图像的颜色(例如颜色配置文件等)
SplashScreen
类提供用于控制启动屏幕的API。 此类可用于关闭启动画面,更改启动画面图像,获取启动画面本机窗口位置/大小,以及在启动画面中绘画。 它不能用于创建启动画面。 您应该使用Java实现提供的选项。此类无法实例化。 只能存在此类的一个实例,并且可以使用
getSplashScreen()
静态方法获取该实例 。 如果在应用程序启动时未通过命令行或清单文件选项创建启动屏幕,则getSplashScreen
方法将返回null
。- 从以下版本开始:
- 1.6
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 void
close()
隐藏启动屏幕,关闭窗口并释放所有相关资源。Graphics2D
createGraphics()
为初始屏幕叠加图像创建图形上下文(作为Graphics2D
对象),允许您在初始屏幕上绘制。Rectangle
getBounds()
以Rectangle
形式返回初始屏幕窗口的边界 。URL
getImageURL()
返回当前的初始屏幕图像。Dimension
getSize()
以Dimension
的形式返回初始屏幕窗口的大小 。static SplashScreen
getSplashScreen()
返回用于支持显示的系统上的Java启动闪屏控制的SplashScreen
对象。boolean
isVisible()
确定启动画面是否可见。void
setImageURL(URL imageURL)
更改启动画面图像。void
update()
使用叠加图像的当前内容更新启动窗口。
-
-
-
方法详细信息
-
getSplashScreen
public static SplashScreen 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
- 新启动屏幕图像的非null
URL - 异常
-
NullPointerException
- 如果imageURL
是null
-
IOException
- 如果加载图像时出错 -
IllegalStateException
- 如果启动画面已关闭
-
getImageURL
public URL getImageURL() throws IllegalStateException
返回当前的初始屏幕图像。- 结果
- 当前启动画面图像文件的URL
- 异常
-
IllegalStateException
- 如果启动画面已关闭
-
getBounds
public Rectangle getBounds() throws IllegalStateException
以Rectangle
的形式返回初始屏幕窗口的边界 。 例如,如果要将闪屏替换为同一位置的窗口,这可能很有用。您无法控制初始屏幕的大小或位置。 图像更改时,会自动调整启动画面大小。
图像可以包含透明区域,因此报告的边界可以大于屏幕上的可见闪屏图像。
- 结果
-
Rectangle
包含启动画面边界 - 异常
-
IllegalStateException
- 如果启动画面已关闭
-
getSize
public Dimension getSize() throws IllegalStateException
以Dimension
形式返回初始屏幕窗口的大小 。 例如,如果要在启动画面覆盖表面上绘图,这可能很有用。您无法控制初始屏幕的大小或位置。 图像更改时,会自动调整启动画面大小。
图像可以包含透明区域,因此报告的尺寸可以大于屏幕上的可见闪屏图像。
- 结果
-
Dimension
对象,指示启动屏幕大小 - 异常
-
IllegalStateException
- 如果启动画面已关闭
-
createGraphics
public Graphics2D createGraphics() throws IllegalStateException
为初始屏幕叠加图像创建图形上下文(作为Graphics2D
对象),允许您在初始屏幕上绘制。 请注意,您不是在主图像上绘图,而是使用Alpha混合在主图像上显示的图像上绘图。 另请注意,在叠加图像上绘图不一定会更新启动画面窗口的内容。 如果希望立即更新启动画面,SplashScreen
在update()
上调用update()
。图形上下文的坐标空间中的像素(0,0)对应于闪屏本机窗口边界的原点(参见
getBounds()
)。- 结果
- 启动画面覆盖表面的图形上下文
- 异常
-
IllegalStateException
- 如果启动画面已关闭
-
update
public void update() throws IllegalStateException
使用叠加图像的当前内容更新启动窗口。- 异常
-
IllegalStateException
- 如果叠加图像不存在; 例如,如果从未调用过createGraphics
,或者已经关闭了启动画面
-
close
public void close() throws IllegalStateException
隐藏启动屏幕,关闭窗口并释放所有相关资源。- 异常
-
IllegalStateException
- 如果启动画面已关闭
-
isVisible
public boolean isVisible()
确定启动画面是否可见。 可以使用close()
隐藏初始屏幕,当第一个AWT / Swing窗口可见时,它也会自动隐藏。请注意,本机平台可能会延迟在屏幕上显示启动画面本机窗口。 此方法的返回值
true
仅保证尚未发生隐藏启动屏幕窗口的条件。- 结果
- 如果启动画面可见(尚未关闭),则为true,否则为false
-
-