2016-01-05 5 views
0

Привет, кто-нибудь может помочь ниже, это часть кода im, пытающегося реализовать событие click, которое при нажатии кнопки запускает анимацию и может быть остановлено, когда захотите. Он отлично работает для запуска анимации только купирование, дает Спорный вопросКак остановить анимацию с событием нажатия кнопки

public class AnimateCircleListener implements ActionListener,MouseListener 
{ 
    public void actionPerformed(ActionEvent e) 
    { 

     if(e.getSource() == button) 
     { 
      flag = true; 

      if(flag == true) 
      { 
       // creates thread object and calls the move method 
       Move move = new Move(); 
       thread = new Thread(move); 
       thread.start(); 

      } 

     } 
    } 

      @Override 
      public void mouseClicked(MouseEvent arg0) { 



      } 


      @Override 
      public void mouseEntered(MouseEvent arg0) { 

      } 

      @Override 
      public void mouseExited(MouseEvent arg0) { 


      } 

      @Override 
      public void mousePressed(MouseEvent arg0) { 

      } 

      @Override 
      public void mouseReleased(MouseEvent arg0) { 


     } 

    } 

    public class Move implements Runnable // method for moving ball 
    { 
    public void run() 
    { 
     do 
     { 
      x = x + xvel; 

      if(x + diameter > 484) 
      xvel= -1; 

      if(x <= 0) 
      xvel = + 1; 

      drawPanel.repaint(); 

      try 
       { 
       Thread.sleep(10); 
       } 
       catch(Exception ex) 
       { 
        System.out.println("Error"); 
       } 

      }while(decide); // by default decide = true 

     } 
    } 

ответ

1

Используйте Swing Timer для анимации.

Тогда вы можете просто вызвать метод start() в своей кнопке «Пуск» и stop() в вашей кнопке «Стоп».

Смежные вопросы