Как поместить анимацию на JPanel? - Java

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

Всем привет как можно поместить анимацию на JPanel? Т.е. анимация по умолчанию помещается во JFrame так? И вот, как мне поместить анимацию из JFrame на JPanel? Вот обычный код с простенькой программой анимации по середине(В центральной части фрейма шарик перемещается из одного угла в другой) и кнопками по бокам.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
public class JavaApplication12 {
    JButton button,button2;
    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 actionPerformed(ActionEvent e) {
    new Thread(() -> {                      
        for (int i = 0; i < 130; i++) {    
            if((x&y)<200){
                x++;                            
                y++;
            }
           
            this.repaint();                
            try {                          
                Thread.sleep(50);          
            } catch (Exception ex) {        
            }                              
        }
       
    }).start();                            
}
 
     
    @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);
 
    }
 
 
    }
   
   
    class Second extends JPanel implements ActionListener {
        void restart(){
            x = 70;
            y = 70;
            drawPanel.repaint();
        }
 
        @Override
        public void actionPerformed(ActionEvent e) {
            sec.restart();
        }
    }
    Second sec = new Second();
    MyDrawPanel drawPanel = new MyDrawPanel();
   
    public void go(){
        frame = new JFrame();
        JPanel panel,panel2;
        panel = new JPanel();
        panel2 = new JPanel();
        panel.setBackground(Color.darkGray);
        panel2.setBackground(Color.gray);
       
        button = new JButton("Click me");
        button2 = new JButton("Restart");
        Font bigFont = new Font ("serif" , Font.BOLD, 20);
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        button.setFont(bigFont);
        button2.setFont(bigFont);
        panel.add(button);
        //panel.add(button2);
        panel2.add(button2);
       
        frame.getContentPane().add(drawPanel);
        frame.getContentPane().add(panel2, BorderLayout.WEST);
       
        button.addActionListener(drawPanel);
        button2.addActionListener((ActionListener) sec);
       
 
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(panel, BorderLayout.EAST);
 
        frame.setSize(580,320);
        frame.setVisible(true);
       
    }
 
}
Так вот как можно добавить анимацию из центральной части JFrame на левую панель?

Код к задаче: «Как поместить анимацию на JPanel? - Java»

textual
panel2.add(drawPanel);
frame.getContentPane().add(panel2, BorderLayout.WEST);

9   голосов, оценка 4.000 из 5


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