快速业务通道

用java的jwindow实现程序运行出的splash画面 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

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

时间:2011-04-03

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

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号