TextBox2MIDlet.java Source code

Java tutorial

Introduction

Here is the source code for TextBox2MIDlet.java

Source

/*
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) {
    }
}