30sec timer

hello
i have make a mini game as with the coding below
i have only 2 classes…MIDlet and canvas
i wish to make a timer which limit the game time to 30 sec
i have done some coding but end up failure…
can any please help me?
thank you in advance

ps.formatTime is my first work… n the public void run is my second…but both are not working

//main class
public class BetweenCanvas extends Canvas{

   int ans;
   int bomb;
   String name = "Enter";
   int tick = 950;
   int ntick = tick;
   static String my = "1:00";
   String myTime= my;
   boolean winGame;
   long startTime = System.currentTimeMillis();
   
   //class main constructor
   public BetweenCanvas(){
   
   randomNumber();

   }


   protected void randomNumber(){
      Random ranA = new Random();
      Random ranB = new Random();
      Random minus = new Random();
      
      ans = Math.abs(ranA.nextInt())%9;
      bomb = Math.abs(ranB.nextInt())%9;
      int mi = Math.abs(minus.nextInt())%3;
      
      if (ans==bomb){
         bomb = bomb-mi;
      }

      if ((ans==0)||(ans==0)){
         randomNumber();
      }

      if ((bomb==0)||(bomb<0)){
         randomNumber();
      }

   }//end randomNumber class

   public void run()
   {
      while(System.currentTimeMillis() - startTime <= 30000)
         winGame = false;
   }

   //accept player input
   protected void keyPressed(int keyCode){
      // to determine if win
      //if (winGame){
      //return;
      //}
   
      // to determine if lost
      //if (lostGame){
      //return;
      //}

      if (keyCode==KEY_NUM1){
         if (ans==1){
            name = "Bingo";
            //winGame = 
         }
            
         if (bomb==1)
            name = "bb";
      }

      }
      repaint();
   }

   public String formatTime(){
      if((ntick/16)+1 != tick){
         myTime="";
         tick = (ntick/16)+1;
         int small = tick%60;
         int big = tick / 60;
         myTime += big + ":";
         if (small / 10<1){
            myTime+="0";
         
         }
         myTime+=small;
      }
      return(myTime);
   }
   
   
   public void paint (Graphics g)
   {
      g.setColor(255,255,255);
      g.fillRect(0,0, getWidth(),getHeight());
      g.setColor(0,0,0);
      g.drawString("Time: " + startTime/1000,20,40,Graphics.LEFT|Graphics.TOP);
   
   }
}