J2ME Java Tutorial

import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Choice;
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;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class LoginMidlet extends MIDlet implements CommandListener {
  private Display display;
  private TextField userName = new TextField("LoginID:", "", 10, TextField.ANY);
  private TextField password = new TextField("Password:", "", 10, TextField.PASSWORD);
  private Form form = new Form("Sign in");
  private Command cancel = new Command("Cancel", Command.CANCEL, 2);
  private Command login = new Command("Login", Command.OK, 2);
  public void startApp() {
    display = Display.getDisplay(this);
    form.append(userName);
    form.append(password);
    form.addCommand(cancel);
    form.addCommand(login);
    form.setCommandListener(this);
    display.setCurrent(form);
  }
  public void pauseApp() {
  }
  public void destroyApp(boolean unconditional) {
    notifyDestroyed();
  }
  public void validateUser(String name, String password) {
    if (name.equals("name") && password.equals("pass")) {
      menu();
    } else {
      tryAgain();
    }
  }
  public void menu() {
    List services = new List("Choose one", Choice.EXCLUSIVE);
    services.append("Check Mail", null);
    services.append("Compose", null);
    services.append("Addresses", null);
    services.append("Options", null);
    services.append("Sign Out", null);
    display.setCurrent(services);
  }
  public void tryAgain() {
    Alert error = new Alert("Login Incorrect", "Please try again", null, AlertType.ERROR);
    error.setTimeout(Alert.FOREVER);
    userName.setString("");
    password.setString("");
    display.setCurrent(error, form);
  }
  public void commandAction(Command c, Displayable d) {
    String label = c.getLabel();
    if (label.equals("Cancel")) {
      destroyApp(true);
    } else if (label.equals("Login")) {
      validateUser(userName.getString(), password.getString());
    }
  }
}