可参照NetBeans.
url: http://www.netbeans.org.

解决方案 »

  1.   

    ////////////////////////////////////////////////////////////////////////////////
    //显示Logo标志
    ////////////////////////////////////////////////////////////////////////////////
      public void showSplashScreen()
      {
        splashLabel = new JLabel(new ImageIcon(xxx.xxx.class.getResource("splash.gif")));
        splashScreen = new JWindow();
        splashScreen.getContentPane().setLayout(new BorderLayout());
        splashScreen.getContentPane().add(splashLabel,BorderLayout.CENTER);
        splashScreen.pack();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        splashScreen.setLocation(screenSize.width/2 - splashScreen.getSize().width/2,
         screenSize.height/2 - splashScreen.getSize().height/2);
        splashScreen.show();
      }////////////////////////////////////////////////////////////////////////////////
    //隐藏Logo标志
    ////////////////////////////////////////////////////////////////////////////////
      public void hideSplashScreen()
      {
        splashScreen.setVisible(false);
        splashScreen = null;
        splashLabel = null;
      }
    初始化的时候
    showSplashScreen()
    doinit()
    hideSplashScreen()
    如果要动画效果,就使用线程吧
      

  2.   

    我想说两点:
    第一,你的splash可以用一个线程开始!
    第二,同时,在splash工作时,你可以完成应用程序的初始化工作!建议看看一些open source的source,象NetBeans,Eclipse,.......
      

  3.   

    import java.awt.*;
    import javax.swing.*;public class SplashWindow extends JWindow
    {
    private SplashPanel SPLASHPANEL=new SplashPanel();
    private int splash_x;
    private int splash_y;
    private int splash_w;
    private int splash_h;
    private Container con;
    public SplashWindow()
    {
    con=getContentPane();
    con.setLayout(new BorderLayout());

    Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
    Dimension splashsize=SPLASHPANEL.getPreferredSize();
    splash_w=splashsize.width;
    splash_h=splashsize.height;
    splash_x=(int)((screensize.width-splash_w)/2);
    splash_y=(int)((screensize.height-splash_h)/2);
    con.add(SPLASHPANEL,BorderLayout.CENTER);
    setBounds(splash_x,splash_y,splash_w,splash_h);
    show();
    }
    public void hideMe()
    {
    dispose();
    }
    /*
    public static void main(String[] args)
    {
    new SplashWindow();
    }
    */
    }
    ________________________________________________________
    import java.awt.*;
    import javax.swing.*;public class SplashPanel extends JPanel
    {
    private ImageIcon img=null;
    public SplashPanel()
    {
    img=new ImageIcon(getClass().getResource("image\\splash.gif"));
    setOpaque(false);
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    img.paintIcon(this,g,0,0);
    }
    public Dimension getPreferredSize()
    {
    int splash_w=img.getIconWidth();
    int splash_h=img.getIconHeight();
    Dimension splash_dimension=new Dimension(splash_w,splash_h);
    return splash_dimension;
    }
    public ImageIcon getImg()
    {
    return img;
    }
    public void setImg(ImageIcon pic)
    {
    img=pic;
    }
    }