`
pichcar
  • 浏览: 289458 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java Applet 编程技巧实例专辑(四)

阅读更多
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地址,如www.sun.com/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,0,0,this); //显示图像
}
}
  为此,HTML文件中有关Applet的语句如下:

<HTML>
<TITLE>Show Image Applet</TITLE>
<APPLET
CODE="ShowImage.class" //class文件名为ShowImage.class
WIDTH=600
HEIGHT=400>
</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,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;
  }
}
  分析该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窗口的显示可一气呵成。
分享到:
评论

相关推荐

    Java Applet 编程技巧实例专辑.rar

    本专辑围绕“Java Applet编程技巧实例”展开,旨在为初学者提供丰富的学习资源和实践指导。 1. **Java Applet基础知识**: - Applet生命周期:初始化、启动、绘画、更新、停止和销毁六个阶段。 - `Applet`类:...

    JavaApplet实例及教程

    Java+Applet实例讲解(分为1和2两部分)、Java+Applet实例编程、java+Applet登录、JavaApplet教程.pdf、JAVA_applet应用实例.ppt、JavaApplet编程技巧实例专辑、javaapplet例子.doc、Applet类.doc等教程。...

    Java Applet实例编程

    这个"Java Applet实例编程"很可能是包含了一系列的Java Applet编程示例,帮助学习者理解如何利用Java Applet进行实际的开发工作。 在Java Applet的编程中,有几个关键的概念和技术点: 1. **Applet类**:所有的...

    Java_Applet

    首先,"Java Applet 编程技巧实例专辑1.htm"至"Java Applet 编程技巧实例专辑7.htm"这七个文件,很可能是系列教程,它们可能涵盖了Applet的基本概念、生命周期、绘图方法、事件处理、网络通信等多个方面。...

    java applet应用实例

    总的来说,这个Java Applet应用实例集提供了丰富的学习材料,涵盖了从基础到进阶的Applet开发,对于想要了解或提升Java Applet编程技能的开发者来说,这是一个宝贵的资源。通过研究这些实例,开发者可以掌握如何创建...

    JavaApplet实例详细编程

    这个"JavaApplet实例详细编程"的压缩包包含大约30个实例,覆盖了上述的多种知识点,每个实例都代表了一个具体的功能或概念,是学习和掌握Java Applet编程的宝贵资源。通过这些实例,你可以动手实践,理解并掌握如何...

    Java Applet实例编程.rar_applet_java Applet

    这个"Java Applet实例编程.rar"压缩包显然包含了关于如何使用Java进行Applet编程的相关资料。 在Java Applet的编程中,你需要了解以下关键知识点: 1. **Java基础**:首先,你需要掌握Java的基本语法,包括类、...

    JavaApplet实例讲解以及教程大全

    - **示例WORD**:包含各种Applet编程实例,便于学习者动手实践。 - **实例DEMO**:提供可运行的Applet代码,帮助理解代码结构和功能。 - **实例RAR**:压缩文件包含所有示例代码,解压后可以直接在IDE中运行调试...

    javaApplet 实例入门教程

    本入门教程旨在帮助初学者理解和掌握JavaApplet的基本概念、开发环境设置以及实际编程技巧。 1. **JavaApplet基本概念** JavaApplet是一种小型的Java应用程序,它能够在Web浏览器中运行,提供丰富的用户界面和交互...

    java2 applet图形设计实例(有完整代码及相关解释)I

    文章绝大部分都是讲述Java2的图形设计,通过对 Graphics的引用,能非常方便的进行图象绘画:折线、弧、椭圆等等,还讲述了图像的加载 和显示,动画Gif,鼠标及窗口的监视等等……个人很喜欢的资料,希望大家不要...

    java applet实例讲解

    Java Applet是Java技术在早期Web开发中的一种应用方式,它允许开发者创建可以在浏览器中运行的小型程序。本文将深入讲解Java Applet的概念...通过实践简单的Applet实例,你可以更好地掌握Java编程和Web开发的基本原理。

    Java Applet实例讲解 PDF格式

    即使你不喜欢和编程语言打交道,网上有很多做好的java小程序,把他们插到我们的页面中,几乎和插入一个图形文件是一样容易的。为了形象的说明这一点,我们来对照的看一下在网页中插图和插入Java小程序。

    java的applet实例

    Java的Applet实例是Java编程领域中的一个基础概念,它主要涉及到Web应用程序的早期开发技术。Applet是一种在客户端浏览器中运行的小型Java程序,它能够增强网页的交互性,提供动态内容展示。在Java的发展历程中,...

    Java Applet实例讲解

    在本实例讲解中,我们将深入理解Java Applet的工作原理、生命周期、以及如何在实际项目中使用它们。 首先,让我们了解什么是Java Applet。Java Applet是一种由Java编写的客户端应用程序,它可以嵌入到HTML页面中并...

    最简单的java applet图像移动重画实例

    Java Applet是Java平台早期的一种技术,用于在Web浏览器中执行小程序,比如显示交互式的图形、游戏等。...然而,理解这个Java Applet的移动重画实例仍然有助于我们了解早期的Web编程技术和动画原理。

    javaApplet实例

    这个“javaApplet实例”压缩包文件很可能是包含了一些Java Applet的实际代码示例,用于教学或者演示如何创建和使用Java Applets。 Java Applet的工作原理是通过Java Virtual Machine (JVM)在客户端运行,它能够提供...

Global site tag (gtag.js) - Google Analytics