构造函数与startApp()函数

构造函数只在程序运行时执行一次,而startApp()可以在程序运行过程中执行多次,所以有些代码必须放在startApp()中而不能放在构造函数中。即构造函数与startApp()不是绑定在一起执行的,不是说执行startApp()就先执行构造函数,在程序刚开始运行时构造函数与startApp()可以认为是绑定在一起执行的。

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class listDemo extends MIDlet implements CommandListener
{
   Display display;
   List  list;
   Command okCommand;
   Command backCommand;
   int i;

   public listDemo()
   {
      display=Display.getDisplay(this);
      list=new List("构造函数与startApp()函数", List.IMPLICIT);
      okCommand = new Command("确认", Command.OK, 2);
      backCommand = new Command("返回", Command.BACK, 2);
   }

   public void startApp()
   {
      list.append("这是在startApp()中实现的", null);
      list.append("离开", null);
      list.addCommand(okCommand);
      list.addCommand(backCommand);
      list.setCommandListener(this);

      display.setCurrent(list);        
   }

   public void pauseApp(){}

   public void destroyApp(boolean unconditional){}

   public void commandAction(Command cmd, Displayable disp)
   {
      if (cmd == okCommand)
      {

         switch(list.getSelectedIndex()){
            case 0:
                 for(i=0;i<list.size();i++)
                     list.delete(i);
                 list.set(0,"确认开始",null);
                 list.removeCommand(okCommand);
                 break;
            case 1:
                 destroyApp(false);
                 notifyDestroyed();
                 break;
         }
      }
      else if(cmd == backCommand){
         for(i=0;i<list.size();i++)
            list.delete(i);
            startApp();  
      }
   }
}

先按“确认”键,然后按“返回”键,得到如下显示

但是如果将上面代码中startApp()中蓝色的代码放到构造函数中去

   public listDemo()
   {
      display=Display.getDisplay(this);
      list=new List("构造函数与startApp()函数", List.IMPLICIT);
      okCommand = new Command("确认", Command.OK, 2);
      backCommand = new Command("返回", Command.BACK, 2);
      list.append("这是在startApp()中实现的", null);
      list.append("离开", null);
      list.addCommand(okCommand);
      list.addCommand(backCommand);
      list.setCommandListener(this);
   }

先按“确认”键,然后按“返回”键,得到如下显示

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页