跳至主目录
J2ME:循序渐进 下载教程 zip 文件英文原文
主菜单章节菜单给出此教程的反馈意见上一屏下一屏
第十章:MIDP API
  


HelloWorld MIDlet第 5 页(共 6 页)


与使用 KJava HelloWorld 应用程序一样,这个 MIDlet 也会在 MIDP 设备的显示屏上显示 "Hello World!" 和 Exit 按钮,按下该按钮会终止应用程序。

HelloWorld.java 文件以下面的代码行开始,这些代码行导入稍后会在 HelloWorld 类中使用的类:


      import javax.microedition.midlet.MIDlet;
      import javax.microedition.lcdui.Command;
      import javax.microedition.lcdui.CommandListener;
      import javax.microedition.lcdui.Display;
      import javax.microedition.lcdui.Displayable;
      import javax.microedition.lcdui.Form;

由于 HelloWorld 类是一个 MIDP 应用程序,它扩展了 MIDlet。它也实现 CommandListener 接口来处理事件:


      public class HelloWorld extends MIDlet implements CommandListener

下面的方法是一个缺省构造程序,它创建一个新表单,在上面初始化控件,然后显示出来:


      private Form form;

      public HelloWorld()
      {
          // Create a new form on which to display our text
         form = new Form("Test App");

         // Add the text "Hello World!" to the form
         form.append("Hello World!");

         // Add a command button labeled "Exit"
         form.addCommand( new Command( "Exit", Command.EXIT, 1 ) );

         // Register this object as a commandListener
         form.setCommandListener( this );
      }              

调用 startApp() 方法启动应用程序与小应用程序的启动方法很象。在 MIDle 的一次执行中它可能会被调用多次。如果 MIDlet 暂停,pauseApp() 将会被调用。要重新启动 MIDlet,需调用 startApp()。仅须执行一次的主初始化代码应该放置在构造程序中:


      public void startApp()
      {
         // Get a reference to the display, and show the form
         Display display = Display.getDisplay(this);
         display.setCurrent( form );
      } 

pauseApp() 被调用使得 MIDlet 处于暂停状态。在此应用程序中,当进入暂停状态时,我们没执行任何操作;但是我们仍然需要在 MIDlet 中实现 pauseApp 方法,因为它是父 MIDlet 类中的抽象方法。


      public void pauseApp() { }

destroyApp() 被调用,破坏了 MIDlet 并使其处于销毁状态。在此应用程序中,我们通过将引用设为 null,释放了对表单的引用。

   
      public void destroyApp(boolean unconditional)
      {
         form = null;
      }

commandAction() 方法是事件处理程序,被请求实现 CommandListener 接口。目前,它破坏了应用程序并通知应用程序管理软件 MIDlet 已经完成。


      public void commandAction(Command c, Displayable d)
         {
            // Destroy this MIDlet
            destroyApp(true);

            // Notify the application management software that this MIDlet
            // has entered the destroyed state
            notifyDestroyed();
         }

主菜单章节菜单给出此教程的反馈意见上一屏下一屏