知识大全 Java Applet编程之实现显示图像

Posted

篇首语:少壮不努力,老大徒伤悲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java Applet编程之实现显示图像相关的知识,希望对你有一定的参考价值。

Java Applet编程之实现显示图像  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java Applet常用来显示存储在GIF文件中的图像 Java Applet装载GIF图像非常简单 在Applet内使用图像文件时需定义Image对象 多数Java Applet使用的是GIF或JPEG格式的图像文件 Applet使用getImage方法把图像文件和Image对象联系起来   Graphics类的drawImage方法用来显示Image对象 为了提高图像的显示效果 许多Applet都采用双缓冲技术 首先把图像装入内存 然后再显示在屏幕上     Applet可通过imageUpdate方法测定一幅图像已经装了多少在内存中      装载一幅图像  Java把图像也当做Image对象处理 所以装载图像时需首先定义Image对象 格式如下所示     Image picture;    然后用getImage方法把Image对象和图像文件联系起来     picture=getImage(getCodeBase() ImageFileName GIF );    getImage方法有两个参数 第一个参数是对getCodeBase方法的调用 该方法返回Applet的URL地址 如/Applet 第二个参数指定从URL装入的图像文件名 如果图文件位于Applet之下的某个子目录 文件名中则应包括相应的目录路径     用getImage方法把图像装入后 Applet便可用Graphics类的drawImage方法显示图像 形式如下所示     g drawImage(Picture x y this);    该drayImage方法的参数指明了待显示的图像 图像左上角的x坐标和y坐标以及this     第四个参数的目的是指定一个实现ImageObServer接口的对象 即定义了imageUpdate方法的对象(该方法随后讨论)      显示图像(ShowImage java)  //源程序清单  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 this); //显示图像        为此 HTML文件中有关Applet的语句如下     <HTML>  <TITLE>Show Image Applet</TITLE>  <APPLET  CODE= ShowImage class //class文件名为ShowImage class  WIDTH=   HEIGHT= >  </APPLET>  </HTML>    编译之后运行该Applet时 图像不是一气呵成的 这是因为程序不是drawImage方法返回之前把图像完整地装入并显示的 与此相反 drawImage方法创建了一个线程 该线程与Applet的原有执行线程并发执行 它一边装入一边显示 从而产生了这种不连续现象 为了提高显示效果 许多Applet都采用图像双缓冲技术 即先把图像完整地装入内存然后再显示在屏幕上 这样可使图像的显示一气呵成      双缓冲图像  为了提高图像的显示效果应采用双缓冲技术 首先把图像装入内存 然后再显示在Applet窗口中     使用双缓冲图像技术例子(BackgroundImage java)    //源程序清单  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 this); //显示非屏幕图像    public void paint(Graphics g)    if(ImageLoaded)    g drawImage(picture 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;        分析该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窗口的显示可一气呵成 cha138/Article/program/Java/hx/201311/26336

相关参考

知识大全 Java Applet编程小技巧之文字显示

JavaApplet编程小技巧之文字显示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  显示文字

知识大全 Java Applet 编 程 技 巧

JavaApplet编程技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JavaApplet

知识大全 优化Java动画编程中的显示效果

优化Java动画编程中的显示效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java动画编程

知识大全 Java泛型编程之诀窍

Java泛型编程之诀窍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 Java编程思想之静态技术

Java编程思想之静态技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  静态技术包括静态数据静

知识大全 Java:Applet布局问题

Java:Applet布局问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  applet布局问

知识大全 Java并发编程实践之ThreadLocal变量

Java并发编程实践之ThreadLocal变量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Java高级编程之displayTag学习摘要

Java高级编程之displayTag学习摘要  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  t

知识大全 Java多线程编程基础之线程对象

Java多线程编程基础之线程对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 JAVA编程解析之classpath的深入理解

JAVA编程解析之classpath的深入理解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  现