Drawing Simple Animation with Java JPanel


Simple Java code, how to animate 2D ball movement with circle in Java JPanel.
package myjavaexample; 
 
import java.awt.Canvas; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.RenderingHints; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
 
public class MyJavaExample extends JFrame 
{ 
    private MyCanvas canvas=new MyCanvas(); 
    public void setup() 
    { 
        this.setSize(800,600); 
        this.setLocation(200,200); 
        this.setTitle("Drawing Simple Animation"); 

        canvas.setPreferredSize(new Dimension(400,300)); 

        this.add(canvas); 
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        this.setResizable(false); 
 
        this.pack(); 
        this.setVisible(true); 

        canvas.calldraw(); 
    } 

    private class MyCanvas extends JPanel 
    { 
        private int x=20,y=20,vx=3,vy=4; 

        public void calldraw() 
        { 
            Thread th=new Thread(new Runnable(){ 
                public void run() 
                { 
                    while(true){ 
                        try { 
                            Thread.sleep(10); 
                            repaint(); 
                        } catch (InterruptedException e) {} 
                    } 
                } 
            }); 
            th.start(); 
        } 

        public void paintComponent(Graphics g) { 
            super.paintComponent(g); 
     Graphics2D g2d = (Graphics2D) g; 
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); 

            x+=vx;y+=vy; 

            if(x<0){x=10;vx*=-1;} 
            if(y<0){y=10;vy*=-1;} 
            if(x>getWidth()){x=getWidth()-10;vx*=-1;} 
            if(y>getHeight()){y=getHeight()-10;vy*=-1;} 

            g2d.setColor(Color.yellow); 
            g2d.fillOval(x-10,y-10,20,20); 
        } 
    } 

    public static void main(String[] args) { 
        MyJavaExample mainwin=new MyJavaExample(); 
        mainwin.setup(); 
    } 
} 

Comments



Popular posts from this blog

Simple Java Code HTML Highlighter

How to Use Extends and Implements

Fibonacci Algorithm in Java Array