这是我第一次在StackOverFlow中,如果我打破了一些规则,我很抱歉,但我搜索了一个没有成功的解决方案。我也道歉,因为我的英语并不完美,我希望你们中的某个人能够支持我。
我正在做一个应用程序,在启动时从数据库加载一些数据(这个过程需要几秒钟),我想在应用程序启动时显示动画加载gif。
此代码在应用程序启动之前正确显示了带有gif的JDialog(带有Thread.join()),但没有动画。 在应用启动之前,gif动画才会启动。
如果我在线程的末尾写了一个Thread.sleep(),那么gif动画会在线程处于睡眠状态时运行,并在Thread.sleep()结尾处完成。我也尝试在第二个帖子中运行以下代码,但两者都没有。
我附上代码......提前致谢!
public static void main(String args[]){
Thread t=new Thread(new Runnable(){
public void run(){
JDialog d=new JDialog();
d.setUndecorated(true);
JLabel etiqueta=new JLabel();
URL u=getClass().getResource("/img/load.gif");
ImageIcon ic= new ImageIcon(u);
etiqueta.setIcon(ic);
d.getContentPane().add(etiqueta);
d.pack();
d.setVisible(true);
d.setLocationRelativeTo(null);
}
});
t.start();
try{
t.join();
for(UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()){
if("Windows".equals(info.getName())){
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}catch(Exception e){
System.out.println(e);
}
EventQueue.invokeLater(new Runnable(){
public void run(){
new ControlPersonal().setVisible(true);
}
});
}