Старт анимации не при старте программы, а при нажатии кнопки - Java

Формулировка задачи:

Всем привет, как можно переделать нижеприведённый код чтобы анимация срабатывала не при старте программы а при нажатии кнопки?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class JavaApplication12 {
    JButton button;
    JFrame frame;
    int x = 70;
    int y = 70;
    
    
    public static void main(String[] args) {
        JavaApplication12 gui = new JavaApplication12();
        gui.go();
    }
    
    
    
    class MyDrawPanel extends JPanel  { 
    @Override
    public void paintComponent(Graphics g){
        g.setColor(Color.white); 
        g.fillRect(0,0, this.getWidth(), this.getHeight());
        
        g.setColor(Color.green); 
        g.fillOval(x,y,40,40) ; 
        
        
    }       
 
    }
 
 
    public void go(){
        frame = new JFrame();
        
        MyDrawPanel drawPanel = new MyDrawPanel(); 
        frame.getContentPane().add(drawPanel);
 
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
 
        frame.setSize(300,300);
        frame.setVisible(true);
        
        for(int i=0; i<130; i++){
            x++;
            y++;
            
            drawPanel.repaint();
            try{
                Thread.sleep(50);
            }catch(Exception ex){ }
        }
    }
 
 
}
Покажите как это можно сделать? Добавлено через 25 минут У меня вот что получилось но это определённо не то!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
public class JavaApplication12 {
    JButton button;
    JFrame frame;
    int x = 70;
    int y = 70;
    
    
    public static void main(String[] args) {
        JavaApplication12 gui = new JavaApplication12();
        gui.go();
    }
    
    
    
    class MyDrawPanel extends JPanel implements ActionListener { 
    @Override
    public void paintComponent(Graphics g){
        g.setColor(Color.white); 
        g.fillRect(0,0, this.getWidth(), this.getHeight());
        
        g.setColor(Color.green); 
        g.fillOval(x,y,40,40) ; 
 
    }
      
    
    @Override
    public void actionPerformed(ActionEvent e) {
        for(int i=0; i<130; i++){
            x++;
            y++;
            
            this.repaint();
            try{
                Thread.sleep(50);
            }catch(Exception ex){ }
        }
        
    }
    
    
        
 
    }
 
 
    public void go(){
        frame = new JFrame();
     
        button = new JButton("Click me");
        
        MyDrawPanel drawPanel = new MyDrawPanel(); 
        frame.getContentPane().add(drawPanel);
        button.addActionListener(drawPanel);
        
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(button, BorderLayout.SOUTH);
 
        frame.setSize(300,300);
        frame.setVisible(true);
        
        }
    }
}

Код к задаче: «Старт анимации не при старте программы, а при нажатии кнопки - Java»

textual
@Override                                   
public void actionPerformed(ActionEvent e) {
    new Thread(() -> {                      
        for (int i = 0; i < 130; i++) {     
            x++;                            
            y++;                            
                                            
            this.repaint();                 
            try {                           
                Thread.sleep(50);           
            } catch (Exception ex) {        
            }                               
        }                                   
    }).start();                             
}

6   голосов, оценка 4.167 из 5


СОХРАНИТЬ ССЫЛКУ