import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
public class J2MEImmutableImageExample extends MIDlet {
private Display display;
private MyCanvas canvas;
public J2MEImmutableImageExample() {
display = Display.getDisplay(this);
canvas = new MyCanvas(this);
}
protected void startApp() {
display.setCurrent(canvas);
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
public void exitMIDlet() {
destroyApp(true);
notifyDestroyed();
}
class MyCanvas extends Canvas implements CommandListener {
private Command exit;
private J2MEImmutableImageExample immutableImageExample;
private Image image = null;
public MyCanvas(J2MEImmutableImageExample immutableImageExample) {
this.immutableImageExample = immutableImageExample;
exit = new Command("Exit", Command.EXIT, 1);
addCommand(exit);
setCommandListener(this);
try {
image = Image.createImage("/myImage.png");
} catch (Exception error) {
Alert alert = new Alert("Failure", "Can’t open image file.", null, null);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
}
protected void paint(Graphics graphics) {
if (image != null) {
graphics.drawImage(image, 0, 0, Graphics.VCENTER | Graphics.HCENTER);
}
}
public void commandAction(Command command, Displayable display) {
if (command == exit) {
immutableImageExample.exitMIDlet();
}
}
}
}