import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.List;
import java.util.ArrayList;public class DongHua extends JApplet  //implements ActionListener
 {   String names[]={"一","二","三","四","五","六","七","八","九","十"};
     Thread t1,t2;
int  f=0,j=0;
       String st=new String("stop"); 
         List listName=new ArrayList();
 String s=new String("");
         boolean flag=true;
 public  void init()
 {  
          for(int i=0;i<names.length;i++)
              listName.add(names[i]);     
   Run r=new Run();
   t1=new Thread(r);
           t2=new Thread(r);           t1.start();
           t2.start();
          
           
    
 }
          
 public void paint(Graphics g)
 {  synchronized(s)
 {    
              
              g.clearRect(0,0,600,600); 
                              g.setFont(new Font("隶书",Font.BOLD,72));
                              g.setColor(Color.blue);
                              if(listName.size()>0)////////
      g.drawString((String)listName.get(f),50,50);
  f=(f+1)%(listName.size());
                              
                                   
      
         }
 }
        
  class  Run implements Runnable
 {
      public void run()
   {
  while(true)
   {
          try {           
  Thread.sleep(10);
        repaint();
          }
   catch(Exception e){  }
   }
   }
     }
} 以上程序运行后,在小程序窗口就会不断的滚动显示字"一"到"十"
我想当我在窗口里点击一下,那么就让显示的字停下来(一直到我再次点击时那字才又开始滚动显示)
且停下来后,那么显示的那个字下次就不会再显示有了
如:某时刻我点击了一下,此时窗口显示"三",然后我再点击,则又继续滚动显示字"一"到"十",但此时"三"已不在其中了如果我再点一下又停下来,此时如果显示"六",那么我接着再点击又继续显示,但"三"和"六"又删掉了依此类推,循环点击,直到所有的字删完为止!请高手帮我补充完整!也可另帮写一个完整的程序!
哪个高手先帮我实现,我把100分给他!谢谢!我在线等!

解决方案 »

  1.   

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.List;//没必要
    import java.util.ArrayList;public class DongHua extends JApplet  //implements ActionListener
     {   String names[]={"&Ograve;&raquo;","&para;&thorn;","&Egrave;&yacute;","&Euml;&Auml;","&Icirc;&aring;","&Aacute;ù","&AElig;&szlig;","°&Euml;","&frac34;&Aring;","&Ecirc;&reg;"};
       boolean isrun = true;//判断线程是否在运行.
       //  Thread t1,t2;//没有必要;
    int  f=0,j=0;
    Run r;//在后面要用到对r的操作
           String st=new String("stop"); 
             ArrayList listName=new ArrayList();//相应修改
     String s=new String("");
             boolean flag=true;
     public  void init()
     {  
              for(int i=0;i<names.length;i++)
                  listName.add(names[i]);     
       r=new Run();//此处相应修改
      // t1=new Thread(r);//
             //  t2=new Thread(r);//       //    t1.start();//
            //   t2.start();//
            r.start();//修改
    //********下面添加鼠标监听
              this.addMouseListener(
               new MouseAdapter()
               {
               public void mousePressed(MouseEvent e){
               if(isrun&&listName.size()>0){//现在在运行,且listName中还有Item;
                                        if(f==0)
               {
               f = listName.size();
               }
               f--;
               listName.remove(f);//移除
               try{
               r.suspend();//线程
               isrun = false;
                }catch(Exception es)
                {
               es.printStackTrace();
               }
               }
               else{
               try{
               r.resume();//恢复
               f=0;//设置显示重新开始
               isrun = true;
                }catch(Exception es)
                {
               es.printStackTrace();
               }
               }
               // isrun = !isrun;
               };
               });
               
        
     }
              
     public void paint(Graphics g)
     {  synchronized(s)
     {    
                  
                  g.clearRect(0,0,600,600); 
                                  g.setFont(new Font("&Aacute;&yen;&Ecirc;é",Font.BOLD,72));
                                  g.setColor(Color.blue);
                                  if(listName.size()>0)////////
          g.drawString((String)listName.get(f),50,50);
      f=(f+1)%(listName.size());
          
             }
     }
            
      class  Run extends Thread//把修改为Thread的子类.
     {
          public void run()
       {
      while(true)
       {
              try {           
      super.sleep(500);
            repaint();
              }
       catch(Exception e){  }
       }
       }
         }
    }
      

  2.   

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.List;
    import java.util.ArrayList;public class DongHua extends JApplet  //implements ActionListener
     {   String names[]={"一","二","三","四","五","六","七","八","九","十"};
         Thread t1,t2;
     int  f=0,j=0;
           String st=new String("stop"); 
             List listName=new ArrayList();
     String s=new String("");
             boolean flag=true;
     public  void init()
     {  
              for(int i=0;i<names.length;i++)
                  listName.add(names[i]);     
       Run r=new Run();
       t1=new Thread(r);
               t2=new Thread(r);
               this.addMouseListener(new MouseAdapter(){
             public void mouseClicked(MouseEvent e){
              if(listName.size()!=0)
              {
                 if(f==0)
                 {
                   listName.remove(f);
                   return;
                 }
                 listName.remove(f-1);
               }
             }
           });
               t1.start();
               t2.start();
     }
     public void paint(Graphics g)
     {  synchronized(s)
     {    
                  
                  g.clearRect(0,0,300,300); 
                                  g.setFont(new Font("隶书",Font.BOLD,150));
                                  g.setColor(Color.blue);
                      if(f==listName.size()) f=listName.size()-1;
          g.drawString((String)listName.get(f),50,200);
          if(++f==listName.size()) f=0;
             }
     }class  Run implements Runnable
     {
          public void run()
       {
      while(true)
       {
              try {           
      Thread.sleep(1000);
            if(listName.size()>0) repaint();
              }
       catch(Exception e){  }
       }
       }
         }

    //<applet code=DongHua.class width=300 height=300></applet>
      

  3.   

    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.List;
    import java.util.ArrayList;public class DongHua extends JApplet  //implements ActionListener
     {   String names[]={"一","二","三","四","五","六","七","八","九","十"};
         Thread t1,t2;
     int  f=0,j=0;
     boolean isstarte=true;
           String st=new String("stop"); 
             List listName=new ArrayList();
     String s=new String("");
             boolean flag=true;
     public  void init()
     {  
              for(int i=0;i<names.length;i++)
                  listName.add(names[i]);     
       Run r=new Run();
       t1=new Thread(r);
               t2=new Thread(r);
               this.addMouseListener(new MouseAdapter(){
             public void mouseClicked(MouseEvent e){
              if(listName.size()!=0)
              {
                 isstarte=!isstarte;
                 if(f==0)
                 {
                   listName.remove(f);
                   return;
                 }
                 listName.remove(f-1);
               }
             }
           });
               t1.start();
               t2.start();
     }
     public void paint(Graphics g)
     {  synchronized(s)
     {    
                  
                  g.clearRect(0,0,300,300); 
                                  g.setFont(new Font("隶书",Font.BOLD,150));
                                  g.setColor(Color.blue);
                      if(f==listName.size()) f=listName.size()-1;
          g.drawString((String)listName.get(f),50,200);
          if(++f==listName.size()) f=0;
             }
     }class  Run implements Runnable
     {
          public void run()
       {
      while(true)
       {
              try {           
      Thread.sleep(1000);
            if(listName.size()>0 && isstarte) repaint();
              }
       catch(Exception e){  }
       }
       }
         }

    //<applet code=DongHua.class width=300 height=300></applet>
      

  4.   

    还不太详细 ,把 if(isstarte==true) return; 加在isstarte=!isstarte;的下面就详细了。