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

📄 imagetape.java

📁 几个java的程序
💻 JAVA
字号:
import java.awt.*;public class ImageTape extends java.applet.Applet implements Runnable {    Image imgs[];//用来存放图片的数组    int nimgs;//图片数量    int imgwidth;//图片宽度    int x, newx;    int dist = 5;//图片运动方向    int timeout = 200;//图片移动速度    Thread scroller;//定义一个scroller线程    String dir;//图片所在目录    //初始化,取得HTML提供的参数值	    public void init() {	String at = getParameter("img");	dir = (at != null) ? at : "doc:/demo/images/duke";	at = getParameter("speed");	timeout = 1000 / ((at == null) ? 4 : Integer.valueOf(at).intValue());	at = getParameter("dir");	dist = (at == null) ? 5 : Integer.valueOf(at).intValue();	at = getParameter("nimgs");	nimgs = (at == null) ? 16 : Integer.valueOf(at).intValue();	newx = x = size().width;	//实例化Image类数组	imgs = new Image[nimgs];	for (int i = 0 ; i < nimgs ; i++) {	    //将图片存入Image类数组中		    imgs[i] = getImage(getDocumentBase(), dir + "/T" + (i+1) + ".gif");	}    }    //启动线程    public void start() {	if (scroller == null) {	    scroller = new Thread(this);	    scroller.start();	}    }    //停止线程    public void stop() {	if (scroller != null) {	    scroller.stop();	    scroller = null;	}    }    //执行线程    public void run() {	while (true) {	try {Thread.currentThread().sleep(timeout);} catch (InterruptedException e){}	    scroll(dist);	}    }    //使线程同步    synchronized void scroll(int dist) {	newx += dist;	repaint();    }    //更新图像    public void update(Graphics g) {	g.setColor(Color.lightGray);//设置颜色	if (newx != x) {	    int dist = newx - x;	    if (dist > 0) {//判断图片的移动方向	        //复制屏幕的某个区域		g.copyArea(1, 1, (size().width-2) - dist, size().height-2, dist, 0);		for (x = newx ; x > size().width ; x -= Math.max(size().width - 2, imgwidth));		paint(g, 1, dist + 1);	    } else {//否则		g.copyArea(1 - dist, 1, (size().width-2) + dist, size().height-2, 1, 1);		for (x = newx ; x < 0 ; x += Math.max(size().width - 2, imgwidth));		paint(g, (size().width-1) + dist, size().width-1);	    }	} else {	    paint(g);	}    }    public boolean imageUpdate(Image img, int flags, int x, int y, int w, int h) {	if ((flags & WIDTH) != 0) {	    imgwidth += img.getWidth(this);	}	return super.imageUpdate(img, flags, x, y, w, h);    }    //paint()方法    public void paint(Graphics g, int fromx, int tox) {	int x = this.x;	newx = x;	g.setColor(Color.lightGray);//设置颜色	g.fillRect(fromx, 1, tox - fromx, size().height-2);//填充矩形	g.clipRect(fromx, 1, tox - fromx, size().height-2);//裁减矩形	g.setColor(Color.black);//设置颜色	for (int i = 0 ; i < nimgs ; i++) {	    if (imgs[i] == null) {//判断是否有图像		continue;	    }	    //使用getHeight()和getWidth()计算图像的尺寸	    int w = imgs[i].getWidth(this);	    int h = imgs[i].getHeight(this);	    if ((w > 0) && (h > 0)) {//判断图像大小		if ((x + w > fromx) && (x < tox)) {		    //使用drawImage()方法把图像绘制在屏幕上		    g.drawImage(imgs[i], x, size().height - (h+1), this);		}		if ((x + w) > size().width) {		    x -= Math.max(size().width - 2, imgwidth);		    if ((x + w > fromx) && (x < tox)) {		    	//使用drawImage()方法把图像绘制在屏幕上			g.drawImage(imgs[i], x, size().height - (h + 1), this);		    }		}		x += w;	    }	}    }    //创建3D矩形    public void paint(Graphics g) {    	//创建一个凸出来的3D矩形	g.draw3DRect(0, 0, size().width, size().height, true);	paint(g, 1, size().width-1);    }}

⌨️ 快捷键说明

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