0

这是我的第三个 SO 问题。请再次帮助...我想在我的小程序上放置一个启动画面。为此,我使用了 JWindow 组件。我已经用它来为我的独立 java 应用程序创建启动画面,所以我认为它也可以在 applet 上工作。问题是,它不起作用。Jwindow 可以与小程序一起使用吗?有没有更好的方法来做到这一点?很多!

我在小程序的启动方法中实例化 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);
}

}

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

4

2 回答 2

0

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

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

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

于 2010-03-01T06:43:52.573 回答
0

问题解决了。在小程序启动方法中对静态 Thread.sleep 方法的调用有点停止加载资源(图像)。这就是它没有显示的原因。它是通过创建一个单独的计时器线程来进行实际计数来修复的......所以每个人都知道......:)

于 2010-03-11T04:05:14.613 回答