⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawimage.java

📁 Demonstrate on how to draw image continuously by java applet
💻 JAVA
字号:
import java.util.*;import java.awt.MediaTracker;import java.awt.Graphics;import java.awt.Image;//import java.applet.AudioClip;public class Walker extends java.applet.Applet implements Runnable{	Image offScreenImg;					//存放备用屏幕的内容	Graphics offScreenG;					//备用屏幕的绘图环境	MediaTracker tracker;					//媒体跟踪器	Image walkerImgs[]=new Image[20];		//存放鸵鸟走路姿势图像	Image currentImg;						//当前放映的鸵鸟动作图像	int xpos,ypos=0;						//鸵鸟动作图像显示的位置	int walk_step=2;						//鸵鸟图像每次移动的距离	int delay = 30;						//每帧时延(毫秒)	Thread runThread;	Image bgImage;						//存放草原背景图像	int applet_width,applet_height;	int birdImg_width;						//鸵鸟图像宽度	//AudioClip bgmusic;	int imagenum=0;	NumberMovie mov = new NumberMovie(); 	Timer  timer;	boolean Imageflag;	public void init(){		Imageflag=false;		timer = new Timer();		timer.schedule( mov, 1000, 1000 ); //设备定时器的运行时间		tracker = new MediaTracker(this);		/*for (int i=0;i<walkerImgs.length;i++){					//获取鸵鸟动作图像			walkerImgs[i]=getImage(getCodeBase(),"recfile/av"+i+".jpg");			tracker.addImage(walkerImgs[i], 0);				//列入0组跟踪范围		}*/		//bgImage = getImage(getCodeBase(),"images/"+"bg.gif");	//获取草原背景图像		//tracker.addImage(bgImage, 0);						//列入0组跟踪范围		//bgmusic=getAudioClip(getDocumentBase(),"space.au");	//获取背景音乐		applet_width=size().width;		applet_height=size().height;		try {			offScreenImg = createImage (applet_width,applet_height);//创建备用屏幕			offScreenG = offScreenImg.getGraphics ();//获取备用屏幕的绘图环境		}		catch (Exception e) {			offScreenG = null;		//若出错,就置备用屏幕的绘图上下文环境为null		}	}/*       public boolean mouseMove(java.awt.Event evt, int x, int y) {          ypos = y;                                   // 获取鼠标Y方向的值	  return true;      }*/	public void start (){		if (runThread==null){			runThread=new Thread(this);			runThread.start();		}	}	public void stop(){		if (runThread!=null){			//if(bgmusic!=null)			//	bgmusic.stop();			runThread.stop();			runThread=null;			timer.cancel();		}	}    class NumberMovie extends TimerTask {        public void run(){                    System.out.println( "number"+ imagenum);          }    }	public void run(){		/*try{			tracker.waitForID(0);			//等待0组中所有图像的到达		}catch(InterruptedException e){			return;		}*/		//if(bgmusic!=null)		//	bgmusic.loop();		birdImg_width=640;//walkerImgs[0].getWidth(this);		int i=0;		while(true){			for(xpos=-birdImg_width;xpos<=applet_width;xpos+=walk_step){//计算位置           			//currentImg=walkerImgs[i];				if(Imageflag)					walkerImgs[i]=getImage(getCodeBase(),"recfile/av"+i+".jpg");				else					walkerImgs[i]=getImage(getCodeBase(),"recfile/Sunset"+i+".jpg");				System.out.println( "Imageflag"+ Imageflag);				if(i == 19)				{					if(Imageflag)						Imageflag = false;					else						Imageflag = true;				}				tracker.addImage(walkerImgs[i], 0);				//列入0组跟踪范围				try{tracker.waitForID(0);}catch(InterruptedException e){return;	}				currentImg=walkerImgs[i];	   			repaint();				i=(i+1)%walkerImgs.length;			//计算下一帧是哪幅图像				try{Thread.sleep(delay);}				catch(InterruptedException e){}			}		}	}	public void paint(Graphics g){		//g.drawImage(bgImage,0,0,this);		g.drawImage(currentImg,0,0,this);		imagenum++;	}	public void update(Graphics g){		if (offScreenG!=null) {					//如果备用屏幕创建成功			paint(offScreenG);			g.drawImage(offScreenImg,0,0,this);	//将备用屏幕内容画到当前屏幕来		}		else		{			paint(g);		}								}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -