- 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
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 voidclose()隐藏启动屏幕,关闭窗口并释放所有相关资源。Graphics2DcreateGraphics()为初始屏幕叠加图像创建图形上下文(作为Graphics2D对象),允许您在初始屏幕上绘制。RectanglegetBounds()以Rectangle形式返回初始屏幕窗口的边界 。URLgetImageURL()返回当前的初始屏幕图像。DimensiongetSize()以Dimension的形式返回初始屏幕窗口的大小 。static SplashScreengetSplashScreen()返回用于支持显示的系统上的Java启动闪屏控制的SplashScreen对象。booleanisVisible()确定启动画面是否可见。voidsetImageURL(URL imageURL)更改启动画面图像。voidupdate()使用叠加图像的当前内容更新启动窗口。
-
-
-
方法详细信息
-
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- 新启动屏幕图像的非nullURL - 异常
-
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
-
-