Java/J2ME/StringItem
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();
}
}
}