TextBox是用来显示和修改文本的组件,因为TextBox继承了Screen,因此它占据了移动设备的整个屏幕,从而可以分行显示更多的文本。
下边的代码说明了如何在J2ME应用里使用TextBox
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.lcdui.Ticker;
import javax.microedition.midlet.MIDlet;
public class TextBoxMIDlet extends MIDlet {
// 可以在TextBox里输入的最大文本数
private static final int MAX_TEXT_SIZE = 64;
// TextBox
protected TextBox textBox;
// MIDlet的Display对象
protected Display display;
// 第一次调用startAPP的标志
protected boolean started;
protected void startApp( ) {
if (!started) {
// 如果是第一次--初始化
// 从text.txt里获取将要显示的文本
String str = null;
try {
InputStream is = getClass( ).getResourceAsStream(
"resources/text.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";
}
// 创建textBox实例
textBox = new TextBox("TextBox 范例", str,
MAX_TEXT_SIZE, TextField.ANY);
// 创建一个Ticker
Ticker ticker = new Ticker("这是一个Ticker...");
textBox.setTicker(ticker);
// 将这个TextBox在当前屏幕上显示
display = Display.getDisplay(this);
display.setCurrent(textBox);
started = true;
}
}