Java splashscreen在netbeans中不可见
[在此处输入链接说明][1]我尝试了一个应用程序来显示GIF文件。但我的应用程序没有显示任何错误,而GIf(启动屏幕)不可见 我在清单文件中给出了一个代码: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 上面的代码在
Manifest-Version: 1.0
X-COMMENT:Main类将由buildSplashScreen自动添加图像: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);
}
});
}
}