import javax.swing.*; import java.awt.*; /* JWindow 是一个能够在用户桌面的任何地方显示的容器。 所以能够使用它构成程序刚运行时的splash画面。 */ public class ESplash extends JWindow implements Runnable {         private Thread thread = null;     private Image logo = null;     private Color bg_color = new Color(255, 255, 255);     private Toolkit toolkit =getToolkit();     private int image_width;     private int image_height; 
    public ESplash() {       logo = new ECreateIcon().getSplashImage();       loadImage(logo, 0);       image_width = logo.getWidth(this);       image_height = logo.getHeight(this);       setBackground(bg_color);       setCursor(new Cursor(3));       setSize(image_width + 10, image_height + 10);       //设置JWindow的显示位置       int Xpos = (toolkit.getScreenSize().width - getSize().width) / 2;       int Ypos = (toolkit.getScreenSize().height - getSize().height) / 2;       setBounds(Xpos, Ypos, getSize().width, getSize().height);       setVisible(true);     }     /*      通过使用MediaTracker加载图像,确保图像被正确的加载。      图像被加载后,将进行绘图。     */     private void loadImage(Image image, int ID) {         if(image != null) {             MediaTracker tracker = new MediaTracker(this);             tracker.addImage(image, ID);             try {                 tracker.waitForID(ID);             }             catch(InterruptedException _ex) { }         }     } 
    /*      在JWindow部件上绘制图像。     */          public void paint(Graphics g) {         g.drawImage(logo, 5, 5, image_width, image_height, this);                  //设置字体的色彩         g.setColor(new Color(102, 102, 150));         g.drawString("正在初始化系统......", 7, getSize().height - 72);         //设置矩形框的背景色彩。         g.setColor(new Color(255, 255, 255));                  //绘制矩形框         g.fillRect(5, getSize().height - 70, 317, 7);         g.drawRect(5, getSize().height - 70, 317, 7);                  //重新设置将要填涂在矩形框中的颜色         g.setColor(new Color(102, 102, 150));         for(int n = 0; n < 317; n += 5)             try {              //线程休眠50毫秒              Thread.sleep(50L);              //填涂矩形框              g.fillRect(5, getSize().height - 70, n, 5);             }             catch(Exception _ex) { }         } 
    public void run() {         //设置鼠标为等待状态         setCursor(new Cursor(3));         repaint();     } 
    public void stop() {         //结束线程         thread = null;         logo = null;     } 
 //更新图形区,防止绘图时产生闪烁现象。 
    public void update(Graphics g) {         paint(g);     }   } 
///////////////////////////////////////////////////// 
import java.awt.*; import java.awt.image.*; import java.awt.event.*; import javax.swing.*; 
public class ECreateIcon{    private static Image splashimage;     public ECreateIcon(){  splashimage = getImageFromResource("resources/images/Esplash.gif");    }  //获得图像  private Image getImageFromResource(String image_path) {          return Toolkit.getDefaultToolkit().getImage(image_path);    } 
 public ImageIcon createImageIcon(String filename) {   String path = "/resources/images/" + filename;   return new ImageIcon(getClass().getResource(path));     }        public Image getSplashImage() {        return splashimage;    } } 
  
  
  
  
  
 
  |