import javax.microedition.midlet.*; import javax.microedition.lcdui.*; class Ritcanvas extends Canvas { public void paint(Graphics g) { int w = getWidth(); int h = getHeight(); // Måla bakgrunden, och radera därmed allt som fanns där förut g.setColor(0xff0000); g.fillRect(0, 0, w-1, h-1); // Rita en kvadrat (eller...?) g.setColor(0x000000); g.drawRect(1, 1, w/2 - 2, h/2 - 2); // Rita en cirkel (eller...?) g.setColor(0x000000); g.fillArc(w/2, h/2, w/2-1, h/2-1, 0, 360); } } public class CanvasTest1 extends MIDlet implements CommandListener { private Display display; private TextBox om_rutan = new TextBox("Om programmet", "Ett program som visar hur man ritar figurer på en Canvas. " + "Av Thomas Padron-McCarthy.", 100, TextField.ANY); private Ritcanvas canvasen = new Ritcanvas(); private Command tillbaka_kommandot = new Command("Tillbaka", Command.BACK, 1); private Command avsluta_kommandot = new Command("Avsluta", Command.EXIT, 1); private Command om_kommandot = new Command("Om programmet", Command.SCREEN, 1); public CanvasTest1() { om_rutan.addCommand(tillbaka_kommandot); om_rutan.addCommand(avsluta_kommandot); om_rutan.setCommandListener(this); canvasen.addCommand(om_kommandot); canvasen.addCommand(avsluta_kommandot); canvasen.setCommandListener(this); } public void startApp() { display = Display.getDisplay(this); display.setCurrent(canvasen); } public void destroyApp(boolean unconditional) { } public void pauseApp() { } public void commandAction(Command kommandot, Displayable s) { if (kommandot == avsluta_kommandot) { System.out.println("avsluta_kommandot"); destroyApp(true); notifyDestroyed(); } else if (kommandot == om_kommandot) { System.out.println("om_kommandot"); display.setCurrent(om_rutan); } else if (kommandot == tillbaka_kommandot) { System.out.println("tillbaka_kommandot"); display.setCurrent(canvasen); } } }