Я только начал изучать GUI и Swing и решил написать программу, которую я нашел в учебнике, чтобы отобразить цветной прямоугольник и сделать его похожим на уменьшение размера на экране.Проблема с базовой анимацией Java Swing
Ниже приведен код, который я написал, моя проблема заключается в том, что прямоугольник отображается на экране, но не перерисовывается на меньший размер каждые 50 мс. Может ли кто-нибудь указать, где я ошибаюсь?
Большое спасибо
import javax.swing.*;
import java.awt.*;
public class Animate {
int x = 1;
int y = 1;
public static void main(String[] args){
Animate gui = new Animate();
gui.start();
}
public void start(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Rectangles rectangles = new Rectangles();
frame.getContentPane().add(rectangles);
frame.setSize(500,270);
frame.setVisible(true);
for(int i = 0; i < 100; i++,y++,x++){
x++;
rectangles.repaint();
try {
Thread.sleep(50);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
class Rectangles extends JPanel {
public void paintComponent(Graphics g){
g.setColor(Color.blue);
g.fillRect(x, y, 500-x*2, 250-y*2);
}
}
}
Проводили ли вы базовую отладку? Вы добавили инструкцию в свой метод рисования, чтобы узнать, вызвана ли она? Вы отображали значения x/y? – camickr