首先明确一点 直线和矩形的移动都是一个擦去和重画的过程所以 你需要保存直线矩形的属性 即你画它时的参数这样 在线程里可以通过这些属性来完成擦去和重画的工作至于如何做 单纯的线程和paint都不麻烦 这个最好由自己来完成实在不行 再来这里向别人要

解决方案 »

  1.   

    重画,这些参数我都是了解的,只是不知道多线程是如何实现的,
    这是linethread.java,
    import java.applet.*;
    import java.awt.*;
    class lineThread extends Applet implements Runnable
    {
    Thread thread;
    private transient int i;
    lineThread(){
    thread=new Thread(this,"画椭圆");
        System.out.println("开始画椭圆");
    thread.start();
    }
    public void run(){
    try
    {
    for (i=1;i<100 ;i++ )
    {
             repaint();
     Thread.sleep(1000);
    }
    }
    catch (InterruptedException e)
    {
    System.out.println("画椭圆结束");
    }
    }
    public void paint(Graphics g){
            g.fillOval(100,i,40,40);
         }
    }
    在下面这个类中,实现
    import java.applet.*;
    import java.awt.*;
    import java.lang.*;
    import java.io.*;
    public class drawline extends Applet implements Runnable
    {
    static int i;
    Thread lineThread=null;
    public void start(){
    if (lineThread==null) {
    lineThread=new Thread(this);
    lineThread.start();
    }
    }
    public void update(Graphics g){
    g.fillOval(100,i,40,40);
    }
    public void run(){
    while (i<100){
    try{
    repaint();
    i++;
    Thread.sleep(1000);
    }
    catch (InterruptedException e){
    stop();
    }
    }
    }
    public void paint(Graphics g){
    g.setColor(Color.red);
    g.fillRect(i,40,40,40);}}
    但不知道怎么作才行