Get Canvas properties : Canvas « J2ME « Java Tutorial

Get Canvas properties
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.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;

public class AttributesMIDlet extends MIDlet 
                        implements CommandListener {

    private Display display;
    protected boolean started;
    private Command exitCommand;
    protected void startApp() {
        if (!started) {
            display = Display.getDisplay(this);
            Canvas canvas = new DummyCanvas();
            Form form = new Form("Attributes");
            exitCommand = new Command("Exit", Command.EXIT, 0);
            boolean isColor = display.isColor();
            form.append(new StringItem(isColor ? "Colors: " : "Grays: ",
            form.append(new StringItem("Width: ", String.valueOf(canvas.getWidth())));
            form.append(new StringItem("Height: ", String.valueOf(canvas.getHeight())));
            form.append(new StringItem("Pointer? ", String.valueOf(canvas.hasPointerEvents())));
            form.append(new StringItem("Motion? ",String.valueOf(canvas.hasPointerMotionEvents())));
            form.append(new StringItem("Repeat? ",String.valueOf(canvas.hasRepeatEvents())));
            form.append(new StringItem("Buffered? ", String.valueOf(canvas.isDoubleBuffered())));

            started = true;

    protected void pauseApp() {

    protected void destroyApp(boolean unconditional) {

    public void commandAction(Command c, Displayable d) {
        if (c == exitCommand) {
    static class DummyCanvas extends Canvas {
        protected void paint(Graphics g) {

31.24.1.extends Canvas to create your own drawable areaextends Canvas to create your own drawable area
31.24.2.Get Canvas propertiesGet Canvas properties
31.24.3.Canvas key pressed and key typed events
31.24.4.Use Canvas to draw a clockUse Canvas to draw a clock
31.24.5.Canvas sizeCanvas size
31.24.6.Navigatable Canvas
31.24.7.Canvas key event and navigate through arrow keys