lists, forms, choices, gauges, text fields, text boxes in J2ME

By: Eric Giguere  

This example demonstrates how to create various GUI components. The MIDlet for this example allows you to test lists, forms, choices, gauges, text fields, text boxes, for example.

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

public class GuiTests extends MIDlet implements CommandListener {
    // display manager
    Display display = null;
    
    // a menu with items
    List menu = null; // main menu

    // list of choices
    List choose = null;

    // textbox
    TextBox input = null;

    // ticker
    Ticker ticker = new Ticker("Test GUI Components");

    // alerts
    final Alert soundAlert = new Alert("sound Alert");

    // date
    DateField date = new DateField("Today's date: ", DateField.DATE);

    // form
    Form form = new Form("Form for Stuff");
     
    // gauge
    Gauge gauge = new Gauge("Gauge Label", true, 10, 0);

    // text field
    TextField textfield = new TextField("TextField Label", "abc", 50, 0);

    // command
    static final Command backCommand = new Command("Back", Command.BACK, 0);
    static final Command mainMenuCommand = new Command("Main", Command.SCREEN, 1);
    static final Command exitCommand = new Command("Exit", Command.STOP, 2);
    String currentMenu = null;

    // constructor.
    public GuiTests() {
    }

    /**
     * Start the MIDlet by creating a list of items and associating the
     * exit command with it.
     */
    public void startApp() throws MIDletStateChangeException {
      display = Display.getDisplay(this);
      // open a db stock file

      menu = new List("Test Components", Choice.IMPLICIT);
      menu.append("Test TextBox", null);
      menu.append("Test List", null);
      menu.append("Test Alert", null);
      menu.append("Test Date", null);
      menu.append("Test Form", null);
      menu.addCommand(exitCommand);
      menu.setCommandListener(this);
      menu.setTicker(ticker);

      mainMenu();
    }

    public void pauseApp() {
      display = null;
      choose = null;
      menu = null;
      ticker = null;
      form = null;
      input = null;
      gauge = null;
      textfield = null;      
    }

    public void destroyApp(boolean unconditional) {
      notifyDestroyed();
    }

    // main menu
    void mainMenu() {
      display.setCurrent(menu);
      currentMenu = "Main"; 
    }

    /**
     * Test the TextBox component.
     */
    public void testTextBox() {
      System.out.println("textbox called");
      input = new TextBox("Enter Some Text:", "", 5, TextField.ANY);
      input.setTicker(new Ticker("testTextBox"));
      input.addCommand(backCommand);
      input.setCommandListener(this);
      input.setString("");
      display.setCurrent(input);
      currentMenu = "input";
    }
   
    /**
     * Test the List component.
     */
    public void testList() {
        choose = new List("Choose Items", Choice.MULTIPLE);
        choose.setTicker(new Ticker("listTest"));
        choose.addCommand(backCommand);
        choose.setCommandListener(this);
        choose.append("Item 1", null);
        choose.append("Item 2", null);
        choose.append("Item 3", null);
        display.setCurrent(choose);
        currentMenu = "list"; 
   }

   /**
    * Test the Alert component.
    */
   public void testAlert() {
      soundAlert.setType(AlertType.ERROR);
      soundAlert.setString("** ERROR **");
      display.setCurrent(soundAlert);
   }

   /**
    * Test the DateField component.
    */
   public void testDate() {
      java.util.Date now = new java.util.Date();
      date.setDate(now);
      Form f = new Form("Today's date");
      f.append(date);
      f.addCommand(backCommand);
      f.setCommandListener(this);
      display.setCurrent(f);
      currentMenu = "date";
   }

   /**
    * Test the Form component.
    */
   public void testForm() {
      form.append(gauge);
      form.append(textfield);
      form.addCommand(backCommand);
      form.setCommandListener(this);
      display.setCurrent(form);
      currentMenu = "form";
   }

   /**
    * Handle events.
    */  
   public void commandAction(Command c, Displayable d) {
      String label = c.getLabel();
      if (label.equals("Exit")) {
         destroyApp(true);
      } else if (label.equals("Back")) {
          if(currentMenu.equals("list") || currentMenu.equals("input") || 
               currentMenu.equals("date") || currentMenu.equals("form")) {
            // go back to menu
            mainMenu();
          } 

      } else {
         List down = (List)display.getCurrent();
         switch(down.getSelectedIndex()) {
           case 0: testTextBox();break;
           case 1: testList();break;
           case 2: testAlert();break;
           case 3: testDate();break;
           case 4: testForm();break;
         }
            
      }
  }
} 



Archived Comments

1. please i need to code an application in which you choose your sexe and enter your name when you pres
View Tutorial          By: eya at 2014-11-06 14:15:50

2. This is great! this is a big help for my studies! Thanks!
View Tutorial          By: cAmfy at 2012-10-13 06:09:48

3. Great works! Pls I want to create a j2me mobile messenger, with social features lyk chatroom etc! Wh
View Tutorial          By: Chris at 2012-05-16 22:18:54

4. really nice article
View Tutorial          By: fir at 2010-01-05 02:32:16

5. U r real cheaters...Copying something as their own article....

this is the real URL=h

View Tutorial          By: HiBoy at 2010-01-05 02:30:13

6. hi Eric Giguere,

You brilliantly copied this from sun's official site.
http://

View Tutorial          By: danger guy at 2010-01-03 12:08:12

7. Thank you so much Eric Giguere.
You save me.

View Tutorial          By: ijAcK D at 2009-10-18 05:02:48

8. abasasasasas
View Tutorial          By: abac at 2009-07-01 00:36:34

9. Great examples Eric! Really helped me out a lot, much better than anything else I found googlin :D K
View Tutorial          By: Markus at 2008-11-12 05:27:05


Most Viewed Articles (in J2ME )

Latest Articles (in J2ME)

Comment on this tutorial