Java splashscreen在netbeans中不可见

Java splashscreen在netbeans中不可见,java,netbeans,Java,Netbeans,[在此处输入链接说明][1]我尝试了一个应用程序来显示GIF文件。但我的应用程序没有显示任何错误,而GIf(启动屏幕)不可见 我在清单文件中给出了一个代码: Manifest-Version: 1.0 X-COMMENT:Main类将由buildSplashScreen自动添加图像:C:\Users\Admin\Documents\NetBeansProjects\splash\src\splash\try5.gif -splash:src\splash\try5.gif 上面的代码在

[在此处输入链接说明][1]我尝试了一个应用程序来显示GIF文件。但我的应用程序没有显示任何错误,而GIf(启动屏幕)不可见

我在清单文件中给出了一个代码:

Manifest-Version: 1.0
X-COMMENT:Main类将由build
SplashScreen自动添加图像:C:\Users\Admin\Documents\NetBeansProjects\splash\src\splash\try5.gif

-splash:src\splash\try5.gif   
上面的代码在VM选项中显示

在我的主课上,我使用了这个代码

  public static void main(String[] args) {
 sleepThread();
 java.awt.EventQueue.invokeLater(new Runnable(){
         @Override
         public void run()
         {
             new welcome().setVisible(true);
         }

         });
}
private static void sleepThread() {
    try
        {
            Thread.sleep(5000);
        }
        catch (InterruptedException ex)
        {
            // Do something, if there is a exception
            System.out.println(ex.toString());
        } 
}

    // TODO code application logic here
}
但当我尝试运行我的应用程序时,它不会显示我的Splashscreen。Splashscreen GIf的大小是否有任何规格,因为我的文件大小为2.63 MB,尺寸为640*360。请帮帮我

编辑:我使用了相同的编码,但尝试了JPG图像作为启动屏幕,效果很好。然后我再次将其更改为.GIF文件,启动屏幕没有出现,而且我再次使用JPG文件更改了我的文件,这次这个JPG文件也不起作用

编辑:[1]:

这里是我为一个示例gif文件提供的链接。但请注意,我的gif文件大小是2.53MB


编辑:现在这个Gif文件工作得很好。但在dis启动屏幕停止后,我的Jframe应该会打开。如果我运行我的程序,它会首先在我的帧中显示我的Splashscreen。

交换命令,你会没事的。打开窗户,然后睡觉。这就是闪屏的工作原理,我想:)

哎呀

我没有注意到。最好对要使用的窗体和swing对象使用SwingUtilities。//把睡眠时间改为5000,现在是2000

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class test {

    public static void main(String[] args) {

        final JDialog frame = new JDialog(new JFrame());
        frame.setSize(320, 240);
        frame.setContentPane(new JLabel(new ImageIcon("H:\\walk.gif")));
        frame.setUndecorated(true);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

        new Thread(new Runnable() {

            @Override
            public void run() {
                sleepThread();
                CloseDialog(frame);
                System.exit(0);
            }
        }).start();

        ShowDialog(frame);

    }

    private static void sleepThread() {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException ex) {
            // Do something, if there is a exception
            System.out.println(ex.toString());
        }
    }

    private static void ShowDialog(final JDialog dialog) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                dialog.setVisible(true);
            }
        });
    }

    private static void CloseDialog(final JDialog dialog) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                dialog.setVisible(false);
            }
        });
    }
}

不需要对您的清单执行任何操作。不,我没有得到解决方案,因为我无法显示初始屏幕文件大小/维度不重要。这是一个图像。只需确保您的帧大小与图像一样大,这样它就不会剪辑图像。不,这打开了两个帧,但没有显示初始屏幕对不起,先生,但dis也只显示jframe,而不显示gif初始屏幕。您是否将gif图像添加到帧中?我在JLabel中遇到错误。我已经在我的主类中给出了代码。现在这个Gif文件工作得很好。但是在dis停止后,我的Jframe应该会打开。如果我运行我的程序,它会首先显示我的Splashscreen和我的帧。你可以在CloseDialog()方法中做任何你想做的事情。关闭splash后,您可以查看主窗体。我的建议是创建一个像ShowDialog()这样的新方法,并通过SwingUtilities.invokeLater()调用它。
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class test {

    public static void main(String[] args) {

        final JDialog frame = new JDialog(new JFrame());
        frame.setSize(320, 240);
        frame.setContentPane(new JLabel(new ImageIcon("H:\\walk.gif")));
        frame.setUndecorated(true);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);

        new Thread(new Runnable() {

            @Override
            public void run() {
                sleepThread();
                CloseDialog(frame);
                System.exit(0);
            }
        }).start();

        ShowDialog(frame);

    }

    private static void sleepThread() {
        try {
            Thread.sleep(2000);
        } catch (InterruptedException ex) {
            // Do something, if there is a exception
            System.out.println(ex.toString());
        }
    }

    private static void ShowDialog(final JDialog dialog) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                dialog.setVisible(true);
            }
        });
    }

    private static void CloseDialog(final JDialog dialog) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                dialog.setVisible(false);
            }
        });
    }
}