i am creating a rect in paint method. and i am trying to move it to its right by 1 px in loop. but the problem is its not going inside the run method. any idea why?
import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import javax.swing.JApplet; public class main extends JApplet implements Runnable { //Double buffering variables Image dbImage; Graphics dbGraphics; //player information variable int x = 10; int y = 50; int width = 30; int height = 30; int dx = 1; //################################################################################################################### /*** init method ***/ public void init() { setSize(800, 400); }/*** end of init method ***/ //##################################################################################################################### /*** stat method ***/ public void start() { }/*** end of start method ***/ //######################################################################################################################## /*** run method ***/ public void run() { while(true) //main game loop { //move image here x += dx; if(x+width >= getWidth()) { x -= dx; } repaint(); try { Thread.sleep(17); } catch(InterruptedException e) { e.printStackTrace(); } }//end of while loop }/*** end of run method ***/ //######################################################################################################################## /*** update method ***/ public void update(Graphics g) { if(dbImage == null) //if image is empty than create new image { dbImage = createImage(this.getSize().width, this.getSize().height); dbGraphics = dbImage.getGraphics(); } dbGraphics.setColor(getBackground()); //set the background color dbGraphics.fillRect(0, 0, this.getSize().width, this.getSize().height); dbGraphics.setColor(getForeground()); paint(dbGraphics); //call paint method g.drawImage(dbImage, 0, 0, this); }/*** end of update method ***/ //######################################################################################################################## /*** paint method ***/ public void paint(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.fillRect(x, y, width, height); //player }/** end of paint method ***/ //###################################################################################################################### /*** stop method ***/ public void stop() { }/*** end of stop method ***/ //####################################################################################################################### /*** destroy method ***/ public void destroy() { }/*** end of destroy method ***/ }