在Java中如何利用Applet来加载图像

论文价格:0元/篇 论文用途:仅供参考 编辑:论文网 点击次数:0
论文字数:**** 论文编号:lw202380083 日期:2024-09-27 来源:论文网
摘 要 本文论述了在用Java开发基于Web的程序时,通常需要把本机上的图像或者是其他网络地址上的图像文件加载到Web页面上,可以通过Applet引用接口和包来加载图像

关键词 :Applet Html Java接口和包 Url

一.在 Applet 中显示图像不但需要引入image 和net包,还需要调用image包中的ImageObserver接口
import java.awt.image.*;
import java.net.URL;
import java.awt.image.ImageObserver;
public class MyApplet extends Applet implements ImageObserver { ...
二.要使Applet能识别图像的位置就必须定义图像路径(如果图像文件在当前Applet程序的目录下,只需要直接加载图像文件即可)
URL imgURL = getDocumentBase();
将路径设为和你的html文件在相同。
URL imgUrl = getClassBase();
将路径设为和你的html文件在相同。
三.在完成图像路径的设置后,就可以通过getImage()函数来获取图像
img = getImage(imgURL,imgName);
当然,有可能你想将自己的图像文件放到一个目录里去,那么你可以这样做
img = getImage(imgURL, "img" + imgName);
四.这样就可以通过drawImage()函数来在Applet中显示图像
最基本方法是调用 drawImage(),这个方法在Graphics类中有定义,最简单的调用形式如下:
g.drawImage(image, xPosition, yPosition, this);
最后一个参数呼叫了ImageObserver.
五.最后的补充
以上所说的都是最典型的加载图像的方法,如果遇到图像文件很大时,就必须对图像文件进行压缩处理,当然有时候你甚至想把你的图像文件打成jar包,这时,你就需要用到 getResourceAsStream() 方法了。
InputStream inObject = getClass().getResourceAsStream("image.gif");
byte buffer[] = new byte[inObject.available()];
for (int j = 0; n = in.available(); j &< n; j ++)
buffer[j] = (byte)in.read();
Image img = createImage(buffer);
六.通过一个典型的小程序演示以上在Applet中通过ImageObserver接口来实现加载一个图像
import java.awt.*;
import java.applet.*;
import java.net.URL;
import java.awt.image.*;
import java.awt.image.ImageObserver;
//使用ImageObserver接口
public class MyApp extends Applet implements ImageObserver{
Image img;
String imgPath = "";
int xpoint = 50, ypoint = 50;
public void init() {
setBackground(Color.red); //设置背景颜色
setForeground(Color.green); //设置前景颜色
imgPath = "img/" + "example.gif"; //设置图像文件路径
}
public void paint(Graphics g) {
URL imgURL = getDocumentBase();
img = getImage(imgURL, imgPath);

七 结束语
随着网络的发展,其功能日趋强大,对网页的包装的要求也是越来越高,而Java无疑是网络编程最好的工具,利用Java中的Applet在Html中加载一些丰富精美的图像就会给静态的Html网页增加一些活力,那么展现在用户面前的就是一个个生动的页面.


参考文献


1 &<&<Think in Java&>&> Bruce Eckel(美) 著   侯捷 译
2 &<&<Java应用设计&>&> 宋波 董晓梅
如果您有论文相关需求,可以通过下面的方式联系我们
客服微信:371975100
QQ 909091757 微信 371975100