模块  java.desktop
软件包  java.awt

Class 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
    • 方法详细信息

      • 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 - 如果 imageURLnull
        IOException - 如果加载图像时出错
        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混合在主图像上显示的图像上绘图。 另请注意,在叠加图像上绘图不一定会更新启动画面窗口的内容。 如果希望立即更新启动画面, SplashScreenupdate()上调用update()

        图形上下文的坐标空间中的像素(0,0)对应于闪屏本机窗口边界的原点(参见getBounds() )。

        结果
        启动画面覆盖表面的图形上下文
        异常
        IllegalStateException - 如果启动画面已关闭
      • update

        public void update()
                    throws IllegalStateException
        使用叠加图像的当前内容更新启动窗口。
        异常
        IllegalStateException - 如果叠加图像不存在; 例如,如果从未调用过createGraphics ,或者已经关闭了启动画面
      • isVisible

        public boolean isVisible()
        确定启动画面是否可见。 可以使用close()隐藏初始屏幕,当第一个AWT / Swing窗口可见时,它也会自动隐藏。

        请注意,本机平台可能会延迟在屏幕上显示启动画面本机窗口。 此方法的返回值true仅保证尚未发生隐藏启动屏幕窗口的条件。

        结果
        如果启动画面可见(尚未关闭),则为true,否则为false