2010-03-01 43 views
0

這是我的第三個SO問題。請再次提供幫助...我想在我的小程序上放置一個閃屏。這樣做,我使用了JWindow組件。我已經使用它爲獨立的Java應用程序創建splashscreens,所以我認爲它也適用於applet。問題是,它不起作用。 Jwindow可以使用applet嗎?有沒有更好的方法來完成這個? tnx很多!Applet SplashScreen,JWIndow?

我在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方法的調用將停止加載資源(圖像)。這就是爲什麼它沒有顯示。它是通過創建一個單獨的計時器線程來進行修復的,以便進行實際的計數...只是所有人都知道...... :)

回答

0

問題解決。對applet start方法中的靜態Thread.sleep方法的調用將停止加載資源(圖像)。這就是爲什麼它沒有顯示。它通過創建一個單獨的計時器來修復線程來做實際的計數...只是所有人都知道...... :)

0

爲什麼你重寫paint(...)方法來顯示圖像?將ImageIcon添加到JLabel並將標籤添加到窗口。然後你只需使用pack()方法來調整窗口大小。

我不知道JWindow是否有效。可能大小爲零,因爲在設置大小時圖像尚未加載。

或者,您可以嘗試使用未裝飾的JFrame。