import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
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 J2METhreadTest extends MIDlet implements CommandListener {
private Form form = new Form("Thread Test");
private StringItem text = new StringItem("Current Thread:", Thread.currentThread().getName());
private Display display;
public J2METhreadTest() {
form.append(text);
form.addCommand(new Command("Exit", Command.EXIT, 1));
form.addCommand(new Command("New Thread", Command.SCREEN, 1));
form.setCommandListener(this);
display = Display.getDisplay(this);
}
public void startApp() {
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command cmd, Displayable disp) {
if (cmd.getLabel().equals("Exit")) {
notifyDestroyed();
} else {
Thread runner = new Thread(new ThreadRunner(display));
runner.start();
}
}
}
class ThreadRunner implements Runnable {
Display display;
ThreadRunner(Display display) {
this.display = display;
}
public void run() {
display.setCurrent(new Alert(Thread.currentThread().getName()));
try {
Thread.sleep(3000);
} catch (Exception e) {
}
}
}