我正在尝试将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;
}
}