Java tutorial
/* J2ME in a Nutshell By Kim Topley ISBN: 0-596-00253-X */ import java.io.*; import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.*; import javax.microedition.midlet.MIDlet; public class TextBox2MIDlet extends TextBoxMIDlet implements CommandListener { // Exit command private static final Command EXIT_COMMAND = new Command("Exit", Command.EXIT, 0); // OK command private static final Command OK_COMMAND = new Command("OK", Command.OK, 0); // Clear text box content private static final Command CLEAR_COMMAND = new Command("Clear", Command.SCREEN, 1); // Reverse the content of the text box private static final Command REVERSE_COMMAND = new Command("Reverse", Command.SCREEN, 1); protected void startApp() { boolean firstTime = !started; super.startApp(); // If this is the first execution // of startApp, install commands if (firstTime) { textBox.addCommand(OK_COMMAND); textBox.addCommand(EXIT_COMMAND); textBox.addCommand(CLEAR_COMMAND); textBox.addCommand(REVERSE_COMMAND); textBox.setCommandListener(this); } } // Command implementations. public void commandAction(Command c, Displayable d) { if (c == EXIT_COMMAND) { destroyApp(true); notifyDestroyed(); } else if (c == OK_COMMAND) { System.out.println("OK pressed"); } else if (c == CLEAR_COMMAND) { textBox.setString(null); } else if (c == REVERSE_COMMAND) { String str = textBox.getString(); if (str != null) { StringBuffer sb = new StringBuffer(str); textBox.setString(sb.reverse().toString()); } } } } class TextBoxMIDlet extends MIDlet { // Maximum size of the text in the TextBox private static final int MAX_TEXT_SIZE = 64; // The TextBox protected TextBox textBox; // The MIDlet's Display object protected Display display; // Flag indicating first call of startApp protected boolean started; protected void startApp() { if (!started) { // First time through - initialize // Get the text to be displayed String str = null; try { InputStream is = getClass().getResourceAsStream("test.txt"); InputStreamReader r = new InputStreamReader(is); char[] buffer = new char[32]; StringBuffer sb = new StringBuffer(); int count; while ((count = r.read(buffer, 0, buffer.length)) > -1) { sb.append(buffer, 0, count); } str = sb.toString(); } catch (IOException ex) { str = "Failed to load text"; } // Create the TextBox textBox = new TextBox("TextBox Example", str, MAX_TEXT_SIZE, TextField.ANY); // Create a ticker and install it Ticker ticker = new Ticker("This is a ticker..."); textBox.setTicker(ticker); // Install the TextBox as the current screen display = Display.getDisplay(this); display.setCurrent(textBox); started = true; } } protected void pauseApp() { } protected void destroyApp(boolean unconditional) { } }