Przerobienie z apletu na aplikację

0

Mam dany taki program, który potrzebuję w wersji aplikacji. Teoretycznie wiem czym się różnią aplet i aplikacja, ale praktycznie nie wiem jak mam przerobić kod.
Dziękuję z góry za wszelką pomoc.

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.geom.*;

class Kulka extends Ellipse2D.Float
{
   Pole plansza;
   int dx,dy;
   
   Kulka(Pole plansza,int x,int y,int dx,int dy) 
   {                                             
      this.x=x;                                  
      this.y=y;                                  
      this.width=10;                             
      this.height=10;                            
                                                 
      this.plansza=plansza;                      
      this.dx=dx;                                
      this.dy=dy;                                
   }                                             
   
   void nextKrok()                                              
   {                                                           
      x+=dx;                                                   
      y+=dy;                                                   
                                                               
      if(getMinX()<0 || getMaxX()>plansza.getWidth())  dx=-dx; 
      if(getMinY()<0 || getMaxY()>plansza.getHeight()) dy=-dy; 
                                                               
      plansza.repaint();                                       
   }                                                           
}

class SilnikKulki extends Thread
{
   Kulka a;
   
   SilnikKulki(Kulka a) 
   {                    
      this.a=a;         
      start();          
   }                    
   
   public void run()                   
   {                                  
      try                             
      {                               
         while(true)                  
         {                            
            a.nextKrok();             
            sleep(15);                
         }                            
      }                               
      catch(InterruptedException e){} 
   }                                  
}


class Belka extends Rectangle2D.Float
{
   Belka(int x)       
   {                  
      this.x=x;       
      this.y=170;     
      this.width=60;  
      this.height=10; 
   }                  
   
   void setX(int x) 
   {                
      this.x=x;     
   }                
}

class Pole extends JPanel implements MouseMotionListener
{
   Belka b=new Belka(100);
   Kulka a=new Kulka(this,100,100,1,1);
   
   Pole()                           
   {                                
      super();                      
      addMouseMotionListener(this); 
      new SilnikKulki(a);           
   }                                
   
   public void paintComponent(Graphics g)                                                       
   {                                                                                           
      super.paintComponent(g);                                                                 
      Graphics2D g2d=(Graphics2D)g;                                                            
      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); 
                                                                                               
      g2d.fill(a);                                                                             
      g2d.fill(b);                                                                             
   }                                                                                           
   
   public void mouseMoved(MouseEvent e) 
   {                                    
      b.setX(e.getX()-50);              
      repaint();                        
   }                                    
   
   public void mouseDragged(MouseEvent e) 
   {                                      
                                          
   }                                      
}

public class Gra extends JApplet
{
   public void init()              
   {                              
      setContentPane(new Pole()); 
   }                              
}
1

Powinno wystarczyć:

public class Gra extends JFrame
{
   public static void main(String[] args)
   {
        new Gra();
   }
   public Gra()              
   {                              
        setContentPane(new Pole());
        pack();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);   
   }                              
}

W konstruktorze klasy Pole powinieneś dodać wiersz typu

  setPreferredSize(new Dimension(400,300));

1 użytkowników online, w tym zalogowanych: 0, gości: 1