编写一个多线程Applet,实现简单的动画。具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到直径为150时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制(控制sleep时间);屏幕上可显示的圆的个数也由HTML文件参数传入。
该怎么用java实现呢??自己想了好久都没想明白...知道的大侠们请赐教......
该怎么用java实现呢??自己想了好久都没想明白...知道的大侠们请赐教......
解决方案 »
- 重载问题?
- java 开发----如何把一个SQl result 结果集 输出成.csv 文件??
- java.io里的File
- java 中的多线程,到底是怎么一回事啊?谢谢。
- java 日期的操作
- 求一方法 工作日期早于当前日历日期1天且不超过两天,或者工作日期和当前日历日期是同一天 在线等。。。
- 写了一个支持多线程的类,如何在他运行的过程中停止他?
- [Java面试题][多线程][阻塞队列]ArrayBlockingQueue
- 请介绍几本好书,关于j2ee、jsp、servlet
- 20分找corejava包.
- 求解HTTP Status 405问题
- swing 中如何加入声音提示啊,有相应的代码参考么?
import java.awt.*;
import java.awt.geom.*;
import java.util.*;public class PaintCircle extends Frame implements Runnable { private int x, y, width,sleep = 100;
public static void main(String[] args) {
PaintCircle pc = new PaintCircle();
pc.setVisible(true);
} public PaintCircle() {
this.setLocation(100, 100);
this.setPreferredSize(new Dimension(800, 600));
this.pack(); new Thread(this).start();
} public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
Ellipse2D e = new Ellipse2D.Double(x, y, width, width);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(Color.RED);
g2.draw(e);
}
public void run() {
int r = 0;
while (true) {
try {
Thread.sleep(sleep); this.repaint();
width--;
if (width == -1) {
width = 150;
Random random = new Random(r);
r = r + 50;
x = Math.abs(random.nextInt() % 400) + 100;
y = Math.abs(random.nextInt() % 200) + 100;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}