下面的java小应用程序运行的时候总是提示未初始化。求解答 5
importjava.awt.*;importjava.applet.*;publicclassJavaAppletextendsApplet{Imageimg;Imag...
import java.awt.*;
import java.applet.*;
public class JavaApplet extends Applet
{
Image img;
Image imgBuff;
Graphics ibg;
int w,h;
int num=0;
double angle;
int wave;
public void init()
{
img=getImage(getCodeBase(),"t1.jpg");//加载图像
MediaTracker imgTrace=new MediaTracker(this);//声明和创建图像追踪器
imgTrace.addImage(img,0);//将加载的图像添加到图像追踪器
try
{
imgTrace.waitForID(0);
}
catch(Exception e)
{
}//使用图像追踪器监视图像的加载过程
w=img.getWidth(this);//获取图像的宽度
h=img.getHeight(this);//获取图像的高度
imgBuff=createImage(2*w,h);//创建缓冲区
ibg=imgBuff.getGraphics();//创建缓冲区画笔
ibg.drawImage(img,0,0,this);//在缓冲区左半部显示图像
for(int i=0;i<h;i++)
{
ibg.copyArea(0,i,w,1,w,(h-1)-2*i);
}
}//用逐线移动的方法,在缓冲区的右半部绘制倒影,i是线号
public void paint(Graphics g)
{
angle=num*2*Math.PI/12;//计算当前帧的相位角
for(int i=0;i<h;i++)
{
wave=(int)((i/12.0+1)*Math.sin(h/12.0*(h-i)/(i+1)+angle));
ibg.copyArea(w,i+wave,w,1,-w,-wave);
}//用逐线移动的方法,在缓冲区的左半部绘制动画帧
num=++num%12;//产生下一帧的帧号
g.drawImage(img,0,0,this);//在Applet窗体上部显示图像
g.drawImage(imgBuff,0,h,this);//在Applet窗体下部显示动画帧
try
{
Thread.sleep(50);
}
catch(Exception e)
{
}//休眠50ms
repaint();
}
public void update(Graphics g)
{
paint(g);
}
} 展开
import java.applet.*;
public class JavaApplet extends Applet
{
Image img;
Image imgBuff;
Graphics ibg;
int w,h;
int num=0;
double angle;
int wave;
public void init()
{
img=getImage(getCodeBase(),"t1.jpg");//加载图像
MediaTracker imgTrace=new MediaTracker(this);//声明和创建图像追踪器
imgTrace.addImage(img,0);//将加载的图像添加到图像追踪器
try
{
imgTrace.waitForID(0);
}
catch(Exception e)
{
}//使用图像追踪器监视图像的加载过程
w=img.getWidth(this);//获取图像的宽度
h=img.getHeight(this);//获取图像的高度
imgBuff=createImage(2*w,h);//创建缓冲区
ibg=imgBuff.getGraphics();//创建缓冲区画笔
ibg.drawImage(img,0,0,this);//在缓冲区左半部显示图像
for(int i=0;i<h;i++)
{
ibg.copyArea(0,i,w,1,w,(h-1)-2*i);
}
}//用逐线移动的方法,在缓冲区的右半部绘制倒影,i是线号
public void paint(Graphics g)
{
angle=num*2*Math.PI/12;//计算当前帧的相位角
for(int i=0;i<h;i++)
{
wave=(int)((i/12.0+1)*Math.sin(h/12.0*(h-i)/(i+1)+angle));
ibg.copyArea(w,i+wave,w,1,-w,-wave);
}//用逐线移动的方法,在缓冲区的左半部绘制动画帧
num=++num%12;//产生下一帧的帧号
g.drawImage(img,0,0,this);//在Applet窗体上部显示图像
g.drawImage(imgBuff,0,h,this);//在Applet窗体下部显示动画帧
try
{
Thread.sleep(50);
}
catch(Exception e)
{
}//休眠50ms
repaint();
}
public void update(Graphics g)
{
paint(g);
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询