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
Post a Comment