[在此处输入链接描述][1]我尝试了一个显示GIF文件的应用程序。但我的应用程序没有显示任何错误,而是GIf(启动屏幕)不可见。
我在清单文件中给出了一个代码:
Manifest-Version: 1.0
X-COMMENT:主类将通过构建SplashScreen-Image:C:UsersAdminDocumentsNetBeansProjectssplashsrcsplashtry5.gif
自动添加
-splash:srcsplashtry5.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]:http://giphy.com/gifs/thank-you-cute-a3IWyhkEC0p32
这是我给出的一个gif文件示例的链接。但请注意,我的gif文件大小是2.53 MB。
编辑:现在这个Gif文件工作得很好。但在dissplash屏幕停止后,我的Jframe应该会打开。如果我运行程序,它会首先在我的框架中显示我的Splashscreen,我该如何映射它。
哎呀!
我没有注意到。对于要使用的窗体和摆动对象,最好使用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);
}
});
}
}
交换命令,您就可以了。显示窗口,然后睡觉。这就是闪屏的工作原理,我认为:)
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
}