用Swing制作歡迎屏幕
(松下客 2001年05月30日 18:49)
幾乎所有時髦的應用都有一個歡迎屏幕。歡迎屏幕既是宣傳產品的方法之一,而且在長時間的應用啟動過程中,歡迎屏幕還用來表示應用正在准備過程中。
下面是一個最簡單的歡迎屏幕實現:
class SplashWindow1 extends JWindow
{
public SplashWindow1(String filename, Frame f)
{
super(f);
JLabel l = new JLabel(new ImageIcon(filename));
getContentPane().add(l, BorderLayout.CENTER);
pack();
Dimension screenSize =
Toolkit.getDefaultToolkit().getScreenSize();
Dimension labelSize = l.getPreferredSize();
setLocation(screenSize.width/2 - (labelSize.width/2),
screenSize.height/2 - (labelSize.height/2));
setVisible(true);
screenSize = null;
labelSize = null;
}
}
SplashWindow1類從Swing的JWindow派生。JWindow是一個容器,它沒有其他窗口所具有的各種窗口元素,如標題條、窗口管理按鈕,甚至連突出顯示的邊框也沒有。因此,JWindow對於制作歡迎屏幕來說是非常合適的。上面的代碼假定圖形文件在當前目錄。圖形通過ImageIcon裝入內存,然後它就被放到了JWindow的中心。接著,窗口被pack(),這使得Swing把窗口調整到適當的大小,最後窗口被移到了屏幕的中心。
如果我們運行上面的程序,可以發現雖然歡迎畫面確實出現在屏幕中央,但遺憾的是,它卻不會關閉!要關閉歡迎畫面,我們需要加入更多的代碼: