This example shows how to load an immutable image from file and draw on a Form.


/*--------------------------------------------------
* ImmutableImageFromFile.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 ImmutableImageFromFile extends MIDlet  implements CommandListener
{
  private Display display;      // Reference to Display object
  private Form fmMain;         // The main form
  private Command cmExit;      // Command to exit the MIDlet

  public ImmutableImageFromFile()
  {
    display = Display.getDisplay(this);

    cmExit = new Command("Exit", Command.EXIT, 1);
    fmMain = new Form("");    
    fmMain.addCommand(cmExit);
    fmMain.setCommandListener(this);   

    try 
    { 
      // Read the appropriate image based on color support
      Image im = Image.createImage((display.isColor()) ? 
                    "/image_color.png":"/image_bw.png");

      // Code Block A
      fmMain.append("A1");                    
      fmMain.append(new ImageItem(null, im, ImageItem.LAYOUT_NEWLINE_BEFORE | 
                           ImageItem.LAYOUT_CENTER | ImageItem.LAYOUT_NEWLINE_AFTER, null));      
      fmMain.append("A2");
      // Code Block B
//      fmMain.append("B1");                    
//      fmMain.append(new ImageItem(null, im,ImageItem.LAYOUT_NEWLINE_BEFORE | 
//                      ImageItem.LAYOUT_LEFT |ImageItem.LAYOUT_NEWLINE_AFTER, null));      
//      fmMain.append("B2");

      // Code Block C
//      fmMain.append("C1");                    
//      fmMain.append(new ImageItem(null, im,ImageItem.LAYOUT_NEWLINE_BEFORE | 
//                       ImageItem.LAYOUT_RIGHT |ImageItem.LAYOUT_NEWLINE_AFTER, null));      
//      fmMain.append("C2");

      // Code Block D
//      fmMain.append("D1");                    
//      fmMain.append(im);      
//      fmMain.append("D2");

//        System.out.println("Layout Directives:" + ((ImageItem)fmMain.get(1)).getLayout());
      display.setCurrent(fmMain);
    }
    catch (java.io.IOException e)
    {
      System.err.println("Unable to locate or read .png file");
    }    
  }
  public void startApp() 
  {
    display.setCurrent(fmMain);
  }
  public void pauseApp()
  {
  }
  public void destroyApp(boolean unconditional)
  {
  }

  public void commandAction(Command c, Displayable s)
  {
    if (c == cmExit)
    {
      destroyApp(false);
      notifyDestroyed();
    } 
  }
}