Я хочу написать Java-программу, которая показывает анимацию сжимающегося прямоугольника после нажатия кнопки.Но после того, как я нажал кнопку, она просто на некоторое время зависла (думаю, пока цикл for не закончился), а затем мой прямоугольник исчез без анимации сжатия.Как решить эту проблему?
Заранее спасибо!
public class Graphic07 {
int x=1;
int y=1;
boolean state = false;
JFrame frame = new JFrame();
JButton button = new JButton("Test");
DrawBoard draw = new DrawBoard();
public static void main(String[] args) {
Graphic07 go = new Graphic07();
go.initialize();
}
void initialize(){
button.addActionListener(new ButtonListener());
frame.getContentPane().add(BorderLayout.CENTER,draw);
frame.getContentPane().add(BorderLayout.SOUTH, button);
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
void paint(){
for (int i=0;i<124;i++){
x++;
y++;
draw.repaint();
try {
Thread.sleep(50);
}
catch (Exception ex) {
}
}
}
class ButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
button.setText("Pressed");
paint();
}
}
class DrawBoard extends JPanel{
@Override
public void paintComponent(Graphics g) {
g.setColor(Color.black);
g.fillRect(0,0,this.getWidth(),this.getHeight());
g.setColor(Color.CYAN);
g.fillRect(x,y,500-x*2,250-y*2);
}
}
}