编程语言
首页 > 编程语言> > Java Web Start中的Java SplashScreen

Java Web Start中的Java SplashScreen

作者:互联网

我正在尝试将Java Swing项目移至Java Web Start
我在启动画面上遇到了问题.该应用程序使用Maven.

当我通过命令行或外部exe加载应用程序时,
它会正确显示启动屏幕.

final SplashScreen splash = SplashScreen.getSplashScreen();

当我通过Java Web Start运行应用程序时,它总是返回null.

是的,我知道JNLP文件中的启动画面部分.

<icon kind="splash" href="splash.png"/>

但这会在加载应用程序之前显示启动屏幕,而不是
当应用程序运行时.换句话说,它不能替代–splash开关.

在清单文件中,我有:

   SplashScreen-Image: (URL to resource,  file in jar)

仅当我运行jar文件而不在Java Web Start中运行时,此方法才能很好地工作.

有人遇到过同样的问题,并找到了解决方案吗?
我需要启动屏幕,因为该应用程序需要花费几秒钟来启动,并且此时用户不显示任何内容.

解决方法:

要显示JNLP客户端的启动屏幕,请调用start()方法并传递启动图像路径.要删除初始屏幕,请调用stop()方法.

public class ShowSplash 
{
   private static JWindow splashFrame;

   public void start(String splashImagePath) throws Exception
   {
      JLabel label;
      ImageIcon image;
      URL url;

      splashFrame = new JWindow();
      url         = ShowSplash.class.getResource(splashImagePath);
      image       = new ImageIcon(url);
      label       = new JLabel(image);

      splashFrame.add(label, BorderLayout.CENTER);
      splashFrame.pack();
      splashFrame.setLocationRelativeTo(null);
      splashFrame.setVisible(true);
   }

   public void stop() throws Exception
   {
      splashFrame.dispose();

      splashFrame = null;
   }
}

标签:jnlp,maven,swing,splash,java
来源: https://codeday.me/bug/20191122/2057133.html