This Midlet shows how to create a ChoiceGroup with images in your Midlets.




 /*--------------------------------------------------
* ChoiceGroupWithImages.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 ChoiceGroupWithImages extends MIDlet implements CommandListener
{
  private Display display;      // Reference to display object 
  private Form fmMain;         // Main form
  private Command cmExit;      // Command to exit the MIDlet
  private Command cmView;      // View the choice selected
  private ChoiceGroup cgPrefs; // Choice Group of preferences

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

    try 
    { 
      // Create array of image objects
      Image images[] = {Image.createImage("/up.png"), Image.createImage("/down.png"),
                        Image.createImage("/help.png") };            
      // Create array of corresponding string objects                        
      String options[] = {"Upload", "Download", "Help"};          
      // Create a choice group using arrays
      cgPrefs = new ChoiceGroup("Select Option:", Choice.EXCLUSIVE, options, images);    

    }
    catch (java.io.IOException e)
    {
      System.err.println("Unable to locate or read .png file");
    }
    cmExit = new Command("Exit", Command.EXIT, 1);
    cmView = new Command("View", Command.SCREEN,2);

    // Create Form, add components, listen for events
    fmMain = new Form("");
    fmMain.append(cgPrefs);
    fmMain.addCommand(cmExit);
    fmMain.addCommand(cmView);
    fmMain.setCommandListener(this);   
  }

  public void startApp()
  {
    display.setCurrent(fmMain);
  }  public void pauseApp()
  { }
  public void destroyApp(boolean unconditional)
  { }

  public void commandAction(Command c, Displayable s)
  {
    if (c == cmView)
    {
      boolean selected[] = new boolean[cgPrefs.size()];
      // Fill array indicating whether each element is checked 
      cgPrefs.getSelectedFlags(selected);

      // Print to console the status of each element      
      for (int i = 0; i < cgPrefs.size(); i++)
        System.out.println(cgPrefs.getString(i) + (selected[i] ? ": selected" : ": not selected"));
    }
    else if (c == cmExit)
    {
      destroyApp(false);
      notifyDestroyed();
    } 
  }
}

 

 

 

 Related Tips