Помогите найти ошибку. При старте программы нет динамического уменьшения прямоугольника

import java.awt.*;
import java.awt.event.*;

public class AnimateRectangle {
  int x = 1;
  int y = 1;
  JFrame frame;
  JButton startButton;
  MyDrawP drawP;

  public static void main(String[] args) {
    AnimateRectangle rectangle = new AnimateRectangle();
    rectangle.prepareGame();
  }

  public void prepareGame() {
    frame = new JFrame();
    drawP = new MyDrawP();
    startButton = new JButton("Start!!!");
    startButton.addActionListener(new MyButton());
    frame.getContentPane().add(drawP);
    frame.getContentPane().add(BorderLayout.SOUTH, startButton);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.setSize(501, 350);
    frame.setVisible(true);
  }

  public void go() {
    for (int i = 0; i < 124; i++, x++, y++) {
      x++;
      drawP.repaint();
      try {
        Thread.sleep(70);
      } catch (Exception ex) {
        ex.printStackTrace();
      }
    }
  }

  class MyDrawP extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
      g.setColor(Color.WHITE);
      g.fillRect(0, 0, 501,350);
      g.setColor(Color.RED);
      g.fillRect(x, y, 500 - x * 2, 250 - y * 2);
    }
  }

  class MyButton implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
      go();
    }
  }
}

При нажатии на кнопу "Start!!!" не происходит динамического отображения уменьшения красного прямоугольника, по завершению работы метода go() он просто исчезает. Подскажите пожалуйста, где здесь ошибка?


Ответы (0 шт):