编写一个多线程Applet,实现简单的动画。具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到直径为150时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制(控制sleep时间);屏幕上可显示的圆的个数也由HTML文件参数传入。
该怎么用java实现呢??自己想了好久都没想明白...知道的大侠们请赐教......

解决方案 »

  1.   

    这样可以实现具体需要自己修改
    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();
                }
            }
        }
    }