双缓冲的小程序

来源:互联网 发布:淘宝网怎么做分销 编辑:程序博客网 时间:2024/04/30 04:30

 

//双缓冲的运用  小程序
import  java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class FanKuai {  //主函数 
 public static void main (String [] args)
 {
 
 //DiTu.diTu();
 MyFrame frame=new MyFrame("动起来");
  frame.addWindowListener(new WindowAdapter()//关闭窗口
        {
            public void windowClosing(WindowEvent e)
            {
               System.exit(0);
            }});
 
 
 }
}

class DiTu
{
 public static  int [][] map =new int[18][18];
 public static void diTu()
 {
  
   for  (int i=0;i<18;i++)
   {
    map[0][i]=-1;
    map[i][0]=-1;
   }
   for  (int i=0;i<18;i++)
   {
    map[17][i]=-1;
    map[i][17]=-1;
   }
   
 }
 
}

class MyFrame extends Frame
{

  private Image iBuffer;
    private Graphics gBuffer;
 MyFrame(String name)
 {
  
 super(name); 
 
 DiTu.diTu(); 
 setBounds(100,100,700,700);
 setVisible(true);
 validate();
 }
 
 public void  paint(Graphics g)
  {
   if(iBuffer == null){
    iBuffer = this.createImage(this.getSize().width,this.getSize().height);
    gBuffer = iBuffer.getGraphics();
   }
   gBuffer.fillRect(0,0, this.getSize().width,this.getSize().height);
  
  
  
     for (int i=0;i<18;i++)
     {
      for (int j=0;j<18;j++)
      {
       
        if (DiTu.map[i][j]==-1)
        {
         gBuffer.setColor(Color.red);
         gBuffer.fillRect(i*30+60+i, j*30+60+j, 30, 30);
        }
         else  //if (DiTu.map[i][j]==0)
        {
          gBuffer.setColor(Color.green);
          gBuffer.fillRect(i*30+60+i, j*30+60+j, 30, 30);
         
        }
      }
       
     }
     g.drawImage(iBuffer,0,0,this);
   
  }
 public void update(Graphics g){
   paint(g);
  }
  
  
 }

 转载请注明:
原文转载自:http://blog.csdn.net/wildcatlele

原创粉丝点击