J2ME Java

/*--------------------------------------------------
* ImplicitList.java
*
* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.com
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class ImplicitList extends MIDlet implements CommandListener
{
  private Display display;      // Reference to Display object
  private List lsDocument;     // Main list
  private Command cmExit;      // Command to exit
  private Command cmAdd;       // Command to add an element
  
  public ImplicitList()
  {
    display = Display.getDisplay(this);
    // Create the Commands
    cmExit = new Command("Exit", Command.EXIT, 1);
    cmAdd = new Command("Add", Command.SCREEN, 1);
    try 
    { 
      // Create array of image objects
      Image images[] = {Image.createImage("/ff.png"), 
                        Image.createImage("/rr.png"),
                        Image.createImage("/new.png")};            
                        
      // Create array of corresponding string objects                                                
      String options[] = {" Next", " Previous", " New"};          
      // Create list using arrays, add commands, listen for events
      lsDocument = new List("Document Option:", 
                             List.IMPLICIT, options, images); 
      lsDocument.addCommand(cmExit);
      lsDocument.addCommand(cmAdd);
      lsDocument.setCommandListener(this);
    }
    catch (java.io.IOException e)
    {
      System.err.println("Unable to locate or read .png file");
    }
  }
      
  public void startApp() 
  {
    display.setCurrent(lsDocument);
  }
  
  public void pauseApp()
  {
  }
     
  public void destroyApp(boolean unconditional)
  {
  }
  public void commandAction(Command c, Displayable s)
  {
    // If an implicit list generated the event
    if (c == List.SELECT_COMMAND)
    {
      switch (lsDocument.getSelectedIndex())
      {
        case 0:
          System.out.println("Next");
          break;
  
        case 1:
          System.out.println("Previous");
          break;
          
        case 2:
          System.out.println("New");
          break;        
        default:
          System.out.println("New Element");
      }
    }
    else if (c == cmAdd)
    {
      try
      {
        
        System.out.println("lsDocument.size():" + lsDocument.size());
        // Add a new element. Using size() as the insertion point,
        // the element will appended to the list.
        lsDocument.insert(lsDocument.size(), " Delete ", 
                           Image.createImage("/delete.png"));
      }
      catch (java.io.IOException e)
      {
        System.err.println("Unable to locate or read .png file");
      } 
    }
    else if (c == cmExit)
    {
      destroyApp(false);
      notifyDestroyed();
    } 
  }
}