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;
}
}
闽公网安备 35060202000074号