Applet SplashScreen,JWIndow?

时间:2010-03-01 06:34:24

标签: java applet jwindow

这是我的第三个问题。请再帮忙......我想在我的小程序上放一个闪屏。在这样做时,我使用了JWindow组件。我已经将它用于为我的独立java应用程序创建启动画面,所以我认为它也适用于applet。问题是,它不起作用。 Jwindow可用于applet吗?有没有更好的方法来实现这一目标? tnx很多!

我在applet的start方法中实例化了LoadingScreen对象? 这是代码:

public class LoadingScreen extends JWindow{
private static final long serialVersionUID = 1L;
private Image image1;
private ImageIcon icon1;

public LoadingScreen(){
//image = Toolkit.getDefaultToolkit().getImage("WebContent/images/loadbar.gif");
image1 = getImage(getCodeBase(), "images/loadbar.gif");

icon1= new ImageIcon(image1);
setSize(icon1.getIconWidth(), icon1.getIconHeight());
setLocationRelativeTo(null);
setVisible(true);

try{
//Make JWindow appear for 5 seconds before disappear
Thread.sleep(5000);
dispose();
System.exit(0);
 }catch(Exception exception){
exception.printStackTrace();
}
} 
 public void paint(Graphics g){
   super.paint(g);
   g.drawImage(image1,0,0,null);
}

}

更新! 问题解决了。调用applet start方法中的静态Thread.sleep方法可以阻止资源(图像)加载...这就是它没有显示的原因。通过创建一个单独的计时器线程来进行实际计数来解决这个问题...就这样每个人都知道......:)

2 个答案:

答案 0 :(得分:0)

为什么要覆盖paint(...)方法来显示图像?将ImageIcon添加到JLabel并将标签添加到窗口。然后你只需使用pack()方法来调整窗口大小。

我不知道JWindow是否有效。可能大小为零,因为在设置大小时尚未加载图像。

或者,您可以尝试使用未修饰的JFrame。

答案 1 :(得分:0)

问题解决了。调用applet start方法中的静态Thread.sleep方法可以阻止资源(图像)加载...这就是它没有显示的原因。通过创建一个单独的计时器线程来进行实际计数来解决这个问题...就这样每个人都知道......:)