站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Applet装载图像
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[Applet|上一页]] | {{template:开发语言导航}}</span> <div style="clear:both;"></div> ==使用方法== [[Java]]把图像也当做Image对象处理,所以装载图像时需首先定义Image对象,格式如下所示: Image picture; 然后用getImage方法把Image对象和图像文件联系起来: picture=getImage(getCodeBase(),"ImageFileName.GIF"); getImage方法有两个参数。第一个参数是对getCodeBase方法的调用,该方法返回Applet的URL地址,如 www.sun.com/Applet。第二个参数指定从URL装入的图像文件名。如果图文件位于Applet之下的某个子目录,文件名中则应包括相应的目录路径。 用getImage方法把图像装入后,Applet便可用Graphics类的drawImage方法显示图像,形式如下所示: g.drawImage(Picture,x,y,this); 该drayImage方法的参数指明了待显示的图像、图像左上角的x坐标和y坐标以及this。 第四个参数的目的是指定一个实现ImageObServer接口的对象,即定义了imageUpdate方法的对象(该方法随后讨论)。 显示图像(ShowImage.java) <pre>//源程序清单 import java.awt.*; import java.applet.*; public class ShowImage extends Applet Image picure; //定义类型为Image的成员变量 public void init() { picture=getImage(getCodeBase(),"Image.gif"); //装载图像 } public void paint(Graphics g) { g.drawImage(picture,0,0,this); //显示图像 } }</pre> 为此,[[HTML]]文件中有关[[Applet]]的语句如下: <pre><HTML> <TITLE>Show Image Applet</TITLE> <APPLET CODE="ShowImage.class" //class文件名为ShowImage.class WIDTH=600 HEIGHT=400> </APPLET> </HTML></pre> 编译之后运行该Applet时,图像不是一气呵成的。这是因为程序不是drawImage方法返回之前把图像完整地装入并显示的。与此相反,drawImage方法创建了一个线程,该线程与Applet的原有执行线程并发执行,它一边装入一边显示,从而产生了这种不连续现象。为了提高显示效果。许多Applet都采用图像双缓冲技术,即先把图像完整地装入内存然后再显示在屏幕上,这样可使图像的显示一气呵成。 ==双缓冲图像== 为了提高图像的显示效果应采用双缓冲技术。首先把图像装入内存,然后再显示在Applet窗口中。 使用双缓冲图像技术例子(BackgroundImage.java) <pre>//源程序清单 import java.awt.*; import java. applet.*; public class BackgroundImage extends Applet //继承Applet { Image picture; Boolean ImageLoaded=false; public void init() { picture=getImage(getCodeBase(),"Image.gif"); //装载图像 Image offScreenImage=createImage(size().width,size().height); //用方法createImage创建Image对象 Graphics offScreenGC=offScreenImage.getGraphics(); //获取Graphics对象 offScreenGC.drawImage(picture,0,0,this); //显示非屏幕图像 } public void paint(Graphics g) { if(ImageLoaded) { g.drawImage(picture,0,0,null); //显示图像,第四参数为null,不是this showStatus("Done"); } else showStatus("Loading image"); } public boolean imageUpdate(Image img,int infoflags,int x,int y,int w,int h) { if(infoflags= =ALLBITS) { imageLoaded=true; repaint(); return false; } else reture true; } }</pre> 分析该Applet的init方法可知,该方法首先定义了一个名为offScreenImage的Image对象并赋予其createImage方法的返回值,然后创建了一个名为offScreenGC的Graphics对象并赋予其图形环境——非屏幕图像将由它来产生。因为这里画的是非屏幕图像,所以 Applet窗口不会有图像显示。 每当Applet调用drawImage方法时,drawImage将创建一个调用 imageUpdate方法的线程。Applet可以在imageUpdate方法里测定图像已有装入内存多少。drawImage创建的线程不断调用 imageUpdate方法,直到该方法返回false为止。 imageUpdate方法的第二个参数infoflags使 Applet能够知道图像装入内存的情况。该参数等于ImageLoaded设置为true并调用repaint方法重画Applet窗口。该方法最终返回false,防止drawImage的执行线程再次调用imageUpdate方法。 该Applet在paint方法里的操作是由 ImageLoaded变量控制的。当该变量变为true时,paint方法便调用drawImage方法显示出图像。paint方法调用 drawImage方法时把null作为第四参数,这样可防止drawImage调用imageUpdate方法。因为这时图像已装入内存,所以图像在 Applet窗口的显示可一气呵成。 ==相关条目== *[[Applet程序开发步骤]] *[[Applet类]] [[category:Applet|A]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:开发语言导航
(
编辑
)