javaMe开等待进度条

package test;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;

public class waitDialog extends BaseDialog{
 
 private Displayable parentDisplay=null;   
 
 private int bgColor=255;   
    private int fgColor=0;
 
    private int x=50;
    private int y=100;   
    private int width=120;
    private int hight=56;   
    private Image pic=null;  
    private Sprite sprite;
   
    private Thread waitThread=null;
    private boolean isStop=false;
   
    private int imageWidth=40;
    private int imageHight=40;
   
    private Font font=null;
   
    private String title="请稍等...";
   
   
    public waitDialog(){
     try {
        font=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,Font.SIZE_SMALL);
     pic=Image.createImage("/test/logining_green.png");
     sprite=new Sprite(pic,40,40);  
     sprite.setPosition(x+8, y+8);
     }
      catch (IOException e) {  
   e.printStackTrace();
   }    
    }
    public void setTitle(String title){
     this.title=title;
    }
    public void setFont(Font font){
     this.font=font;
    } 
 public void paintContainer(Graphics graphics) {  
  if(font!=null)
     graphics.setFont(font);
  else
   font=graphics.getFont();  
  
  graphics.setColor(fgColor);  
  graphics.drawString(title,x+imageWidth+16,y+(imageHight+16-font.getHeight())/2,0);
  
  sprite.paint(graphics);
  sprite.nextFrame(); 
  
 }
 private void drawPic(){
   if(waitThread==null)
   waitThread=new Thread(){
   public void run(){
    while(!isStop){
     repaint();
     try {
      this.sleep(150);
     }
     catch (InterruptedException e) {      
      e.printStackTrace();
     }
    }
   }
  };
  
  waitThread.start();
 }
 private void stopDrawPic(){
  if(waitThread!=null){
   isStop=true;
   if(waitThread.isAlive()){
    waitThread.notify();
    waitThread.interrupt();
   }   
   waitThread=null;
  }  
 }
 public void setFgColor(int fg){
  fgColor=fg;
  repaint();
 } 
 
  public void setVisible(boolean isVisible,Display display){  
   this.setFullScreenMode(true);
   if(isVisible){
    parentDisplay=display.getCurrent();
    display.setCurrent(this);
       drawPic();
   }
   else{
    display.setCurrent(parentDisplay);
    stopDrawPic();
   }
  }
}

你可能感兴趣的:(thread,String,image,null,System,JavaME)