首页 文章

在netbeans中看不到splashscreen

提问于
浏览
0

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

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

Manifest-Version: 1.0

X-COMMENT:Main-Class将由build SplashScreen-Image: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文件的SPLASH屏幕没有出现,而且我再次使用JPG文件更改了我的文件,JPG文件也没有工作 .

编辑:[1]:http://giphy.com/gifs/thank-you-cute-a3IWyhkEC0p32

这是我为示例gif文件提供的链接 . 但请注意我的gif文件大小为2.53 MB .

编辑:现在这个GIF文件工作得很好 . 但是在启动屏幕停止后,我的Jframe应该打开 . 我如何映射它所以如果我运行我的程序它的数据它首先显示我的Splashscreen den我的帧 .

2 回答

  • 0

    哎呀!

    我没注意到最好使用SwingUtilities来处理表单和swing对象 . //将睡眠更改为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);
                }
            });
        }
    }
    
  • 0

    交换命令,你会没事的 . 显示窗口,然后睡觉 . 这就是启动画面的工作方式,我认为:)

    public static void main(String[] args) {
    new welcome().setVisible(true); 
     java.awt.EventQueue.invokeLater(new Runnable(){
             @Override
             public void run()
             {
                  sleepThread();
             }
    
             });
    }
    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
    }
    

相关问题