用java的jwindow运行出的splash画面
文章作者 100test 发表时间 2007:03:14 16:24:13
来源 100Test.Com百考试题网
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 0update(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.
}
}