Module  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缩放图像。 不考虑HiDPI和非HiDPI,所有图像类型的unscaled图像名称即filename.gif应该被传递manifest.mf -splash:选项。 以下是缩放图像的命名约定。 屏幕比例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或8 bpp屏幕上呈现每像素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网址
        异常
        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混合在主图像上显示的图像上。 还要注意,叠加图像上的绘图不一定会更新启动屏幕窗口的内容。 当您希望立即更新闪屏时,您应该拨打update() SplashScreen

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

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

        public void update​()
                    throws IllegalStateException
        使用覆盖图像的当前内容更新启动窗口。
        异常
        IllegalStateException - 如果覆盖图像不存在; 例如,如果createGraphics从未被调用,或者启动屏幕已经关闭
      • isVisible

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

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

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