}
}
public void actionPerformed(ActionEvent e) { repaint();// 重新绘制动画; }
//7.Reflection.java
import java.awt.Graphics; import java.awt.Image;
import java.awt.MediaTracker; import javax.swing.JApplet;
public class Reflection extends JApplet implements Runnable {
// Initialize the applet public void init() {
image = getImage(getCodeBase(), \);
MediaTracker tracker =new MediaTracker(this);//代码1; // 创建图像tracker.addImage(image,0); // 添加要跟踪的图片; try {
tracker.waitForID(0); // 等待图片加载完毕; } catch (InterruptedException e) { }
width =image.getWidth(this); // 获得图片image的宽度; height =image.getHeight(this); // 获得图片image的高度;
buffer = createImage(2 * width, height);// 创建缓冲区,是原始图片2gContext = buffer.getGraphics(); // 创建缓冲区的图形上下文/后台屏幕。 gContext.drawImage(image, 0, 0, width, height, this);
// 将图片按照同样大小绘制到后台屏幕;
for (int i = 0; i < height; i++) {// 将图片逐线复制,生成图片的倒影; gContext.copyArea(0, i, width, 1, width, (height - 1) - 2 * }
gContext.clearRect(0,0,width,height);//代码6; // 清除后台屏幕的左Image image, buffer; Graphics gContext; Thread thread; int width, height;
加载跟踪器
倍宽度;
i);
半部;
}
public void start() {
;
}
if (thread == null)
thread = new Thread(this); thread.start();
public void stop() { }
public void run() { }
public void update(Graphics g) { }
public void paint(Graphics g) {
g.drawImage(image,0,0,width,height,this);
// 从坐标(0,0)处绘制原始图片image;
g.drawImage(buffer,0,height,width,height*2,0,0,width,height,this)
// 将缓冲区图片buffer的左半部绘制到原始图片的正下方;
paint(g);
int dy, num = 0; double d; while (true) { }
d = num * Math.PI / 6;
for (int i = 0; i < height; i++) {
dy = (int) ((i / 12.0D + 1) * Math.sin(height / 12.0D
* (height - i) / (i + 1) + d));
// 计算y轴的偏移量;
gContext.copyArea(width, i + dy, width, 1, -width, -dy);
if (thread != null)
thread = null;
// 从左到右复制生成波纹; }
repaint();// 重新绘制; num = ++num % 12; try {
Thread.sleep(500); // 设置时间间隔; } catch (InterruptedException e) { }
}
}
五、效果图:
1.... 3.....
4.....
5.....
7......
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java实验报告6(3)在线全文阅读。
相关推荐: