首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

问问this的施用

2011-12-06 
问问this的使用//碰撞的小球importjavax.microedition.midlet.*importjavax.microedition.lcdui.*public

问问this的使用
//   碰撞的小球
import   javax.microedition.midlet.*;
import   javax.microedition.lcdui.*;

public   class   BallTest2   extends   MIDlet   implements   CommandListener   {

        Display   display;     //   设备的显示器
        BallCanvas   canvas;     //   用于显示小球的屏幕  
        private   Command   exitCommand   =   new   Command( "Exit ",   Command.EXIT,   1);     //退出命令

        public   BallTest2()   {
display   =   Display.getDisplay(this);   //取得设备的显示器
canvas   =   new   BallCanvas(display);     //   实例化canvas对象
canvas.addCommand(exitCommand);   //   为canvas加上退出命令
canvas.setCommandListener(this);   //   为canvas设置命令监听者
        }

//   重载抽象类MIDlet的抽象方法startApp()
        public   void   startApp()     {
canvas.start();
        }        

//   重载抽象类MIDlet的方法destroyApp()
        public   void   destroyApp(boolean   bl)   {
canvas.destroy();
        }
       
//   重载抽象类MIDlet的方法pauseApp()
        public   void   pauseApp(){}

//   实现接口CommandListener的方法
        public   void   commandAction(Command   c,   Displayable   s)   {
if   (c   ==   exitCommand)   {
       
destroyApp(false);     //   销毁程序
notifyDestroyed();     //   通知销毁程序
        }  
       
}
       
       
        public     class   BallCanvas   extends   Canvas   implements   Runnable{
        //   java.util.Random   random   =   new   java.util.Random();
       
        int   posX=5,   posY=5;   //小球显示位置
        int   ballSize   =   10;   //小球尺寸
        Display   display;   //显示器
       
        public   BallCanvas(Display   display){     //构造函数
        //super();
        this.display=display;
       
       
        }
       
        public   void   run()   {   //线程的主方法
        while   (true){
        this.posX   =   20;//(random.nextInt()> > > 1)   %   (this.getWidth()-20)   +   10;     //生成小球位置X坐标
        this.posY   =   50;//(random.nextInt()> > > 1)   %   (this.getHeight()-20)   +   10;     //生成Y坐标
        try   {
        Thread.sleep(100);     //线程休眠
        }   catch   (InterruptedException   e)   {}


        repaint();   //重绘屏幕
        }
        }
       
        void   start()   {
                display.setCurrent(this);   //设置当前屏幕     //这里的this不知道什么意思
                Thread   t   =   new   Thread(this);
        t.start();   //开始线程运行          
        repaint();
        }
       
        void   destroy()   {
        }
       
        protected   void   paint(Graphics   g)   {
        int   x   =   g.getClipX();   //获取剪切区位置
                        int   y   =   g.getClipY();
                        int   w   =   g.getClipWidth();   //获取剪切区大小
                        int   h   =   g.getClipHeight();
        g.setColor(0xffffff);   //设置当前颜色
        g.fillRect(x,   y,   w,   h);   //绘制填充矩形
        g.setColor(200);  
        g.fillArc(posX,   posY,   ballSize,   ballSize,   0,   360);   //绘制小球
        }
       
        }

       
        }

       
      在BallCanvasBallCanvas类中的   start()方法中   display.setCurrent(this);这一行中的this不知道什么意思?问问大虾们

[解决办法]
就是指该类的当前实例。比如 BallTest2 a = new BallTest2(); a.start(); this 就是a了。

热点排行