WEB开发网
开发学院WEB开发Jsp 用java的jwindow实现程序运行出的splash画面 阅读

用java的jwindow实现程序运行出的splash画面

 2008-01-05 08:31:46 来源:WEB开发网   
核心提示:import javax.swing.*;import java.awt.*;/*JWindow 是一个能够在用户桌面的任何地方显示的容器,所以能够使用它构成程序刚运行时的splash画面,用java的jwindow实现程序运行出的splash画面,*/public class ESplash extends JWin


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;
  }
}


Tags:java jwindow 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接