网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.SOA存储库背后的力量.
.Java桌面应用程序设计新贵:SWT简.
.讲解关于编写跨平台Java程序时的.
.阳光在线电子商务解决方案.
.Java Class 映射及实用工具类完整.
.菜鸟初学Java的备忘录(七).
.理解cocoon.
.标签库的深入研究.
.J2EE编程起步(3).
.EJB的困惑:组件与可重用性的矛盾.
.一个 Java 编程老手的设计语录.
.轻松实现Java 用户界面编程.
.学习Hibernate in Action读书笔记.
.Win2k下Jboss、Tomcat和Apache的.
.编程必备经典:Java常见问题集锦(.
.EJB轻松进阶(4).
.VJ6.0的使用方法(3)关于WFC.
.Java 电 子 商 贸 结 构.
.利用java本地拷贝文件及文件夹.
.Java 语法介绍(六):循环.

Java 性能优化技巧集锦 (5)

发表日期:2008-1-5



  这一篇中介绍的内容适合于图形用户界面的应用(Applet和普通应用),要用到AWT或Swing。 1. 用JAR压缩类文件

Java档案文件(JAR文件)是根据JavaBean标准压缩的文件,是发布JavaBean组件的主要方式和推荐方式。JAR档案有助于减少文件体积,缩短下载时间。例如,它有助于Applet提高启动速度。一个JAR文件可以包含一个或者多个相关的Bean以及支持文件,比如图形、声音、Html和其他资源。要在HTML/jsp文件中指定JAR文件,只需在Applet标记中加入ARCHIVE = "name.jar"声明。

2. 提示Applet装入进程

你是否看到过使用Applet的网站,注重到在应该运行Applet的地方出现了一个占位符?当Applet的下载时间较长时,会发生什么事情?最大的可能就是用户掉头离去。在这种情况下,显示一个Applet正在下载的信息无疑有助于鼓励用户继续等待。下面我们来看看一种具体的实现方法。首先创建一个很小的Applet,该Applet负责在后台下载正式的Applet:


import java.applet.Applet;
import java.applet.AppletStub;
import java.awt.Label;
import java.awt.Graphics;
import java.awt.GridLayout;
public class PreLoader extends Applet implements Runnable, AppletStub {
String largeAppletName;
Label label;
public void init() {
// 要求装载的正式Applet
largeAppletName = getParameter("applet");// “请稍等”提示信息
label = new Label("请稍等..." + largeAppletName);
add(label);
}
public void run(){
try
{
// 获得待装载Applet的类
Class largeAppletClass = Class.forName(largeAppletName);
// 创建待装载Applet的实例
Applet largeApplet = (Applet)largeAppletClass.newInstance();
// 设置该Applet的Stub程序
largeApplet.setStub(this);
// 取消“请稍等”信息
remove(label);
// 设置布局
setLayout(new GridLayout(1, 0));
add(largeApplet);
// 显示正式的Applet
largeApplet.init();
largeApplet.start();
}
catch (Exception ex)
{
// 显示错误信息
label.setText("不能装入指定的Applet");
}
// 刷新屏幕
validate();
}
public void appletResize(int width, int height)
{
// 把appletResize调用从stub程序传递到Applet
resize(width, height);
}
}






编译后的代码小于2K,下载速度很快。代码中有几个地方值得注重。首先,PreLoader实现了AppletStub接口。一般地,Applet从调用者判定自己的codebase。在本例中,我们必须调用setStub()告诉Applet到哪里提取这个信息。另一个值得注重的地方是,AppletStub接口包含许多和Applet类一样的方法,但appletResize()方法除外。这里我们把对appletResize()方法的调用传递给了resize()方法。

3. 在画出图形之前预先装入它

ImageObserver接口可用来接收图形装入的提示信息。ImageObserver接口只有一个方法imageUpdate(),能够用一次repaint()操作在屏幕上画出图形。下面提供了一个例子。


public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h) {
if ((flags & ALLBITS) !=0 {
repaint();
}
else if (flags & (ERROR ABORT )) != 0) {
error = true;
// 文件没有找到,考虑显示一个占位符
repaint();
}
return (flags & (ALLBITS ERROR ABORT)) == 0;
上一篇:Java 性能优化技巧集锦 (6) 人气:811
下一篇:Java 性能优化技巧集锦 (1) 人气:761
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐