Java/J2ME/StringItem

Материал из Java эксперт
Перейти к: навигация, поиск

StringItem Alternative

/*--------------------------------------------------
* StringItemAlternative.java
*
* Example from the book:     Core J2ME Technology
* Copyright John W. Muchow   http://www.CoreJ2ME.ru
* You may use/modify for any non-commercial purpose
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class StringItemAlternative extends MIDlet implements CommandListener
{
  private Display display;      // Reference to Display object for this MIDlet
  private Form fmMain;         // The main form
  private Command cmNext;      // Next label and message
  private Command cmExit;      // Command to exit the MIDlet
  private int msgIndex;         // Index of our message text on form
  private static int count = 0; // How many times through our loop
  public StringItemAlternative()
  {
    display = Display.getDisplay(this);
    // Create commands
    cmNext = new Command("Next", Command.SCREEN, 1);
    cmExit = new Command("Exit", Command.EXIT, 1);
    // Create Form, add Command & message, listen for events
    fmMain = new Form("Preferences");    
    fmMain.addCommand(cmExit);
    fmMain.addCommand(cmNext);    
    
    // Save the index location of this item
    msgIndex = fmMain.append("UserId: johnm");
    
    fmMain.setCommandListener(this);   
  }
  // Called by application manager to start the MIDlet.
  public void startApp()
  {
    display.setCurrent(fmMain);
  }
  public void pauseApp()
  { }
  
  public void destroyApp(boolean unconditional)
  { }
  public void commandAction(Command c, Displayable s)
  {
    if (c == cmNext)
    {
      if (count++ == 0)
      {
        //--------------------------------
        // Option # 1      
        // First time through this method
        //--------------------------------
         StringItem tmpItem = (StringItem) fmMain.get(msgIndex);
         System.out.println("tmpItem.getLabel(): " + tmpItem.getLabel());
         System.out.println("tmpItem.getText(): " + tmpItem.getText());         
         tmpItem.setLabel("Account #: ");  //inherited from Item class
         tmpItem.setText("731");
      }
      else
      {
        //--------------------------------
        // Option # 2      
        // Second time through this method
        //--------------------------------
         fmMain.set(msgIndex, new StringItem("Password: ", "superPants"));
        
        // Remove the Update command
        fmMain.removeCommand(cmNext);
      }
    }
    else if (c == cmExit)
    {
      destroyApp(false);
      notifyDestroyed();
    } 
  }
}





StringItem Demo

//jad file (please verify the jar size)
/*
MIDlet-Name: StringItemExample
MIDlet-Version: 1.0
MIDlet-Vendor: MyCompany
MIDlet-Jar-URL: StringItemExample.jar
MIDlet-1: StringItemExample, , StringItemExample
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-JAR-SIZE: 100
*/
import javax.microedition.lcdui.rumand;
import javax.microedition.lcdui.rumandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;
public class StringItemExample extends MIDlet implements CommandListener {
  private Display display;
  private Form form = new Form("Quiz");
  private StringItem question = new StringItem("Question: ", "A question?");
  private Command giveup = new Command("Give Up", Command.SCREEN, 1);
  private Command exit = new Command("Exit", Command.EXIT, 1);
  public StringItemExample() {
    display = Display.getDisplay(this);
    form.addCommand(exit);
    form.addCommand(giveup);
    form.append(question);
    form.setCommandListener(this);
  }
  public void startApp() {
    display.setCurrent(form);
  }
  public void pauseApp() {
  }
  public void destroyApp(boolean unconditional) {
  }
  public void commandAction(Command command, Displayable displayable) {
    if (command == giveup) {
      question.setLabel("Answer: ");
      question.setText("ans.");
      form.removeCommand(giveup);
    } else if (command == exit) {
      destroyApp(false);
      notifyDestroyed();
    }
  }
}