Porque não desenha no display?

Tow iniciando em canvas, e o primeiro examplo q tentei criar… não funcionou. Quem puder da uma força por favor! Valeu.

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;
import javax.microedition.midlet.MIDletStateChangeException;

public class MenuCentralMIDlet extends MIDlet implements CommandListener{

	private Display display;
	private Command cmdExit;
	private CanvasMenu cMenu;

	public MenuCentralMIDlet() {

		display = Display.getDisplay(this);

		cmdExit = new Command("Sair", Command.EXIT, 0);

		cMenu = new CanvasMenu();
		cMenu.addCommand(cmdExit);
		cMenu.setCommandListener(this);
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
		notifyDestroyed();	
	}

	protected void pauseApp() {
	}

	protected void startApp() throws MIDletStateChangeException {
		display.setCurrent(cMenu);
	}

	public void commandAction(Command c, Displayable d) {
		if(c == cmdExit){
			try{
				destroyApp(true);
			}catch (MIDletStateChangeException e) {
				e.printStackTrace();
			}
		}
	}
}

class CanvasMenu extends Canvas{
	private int XLargura;
	private int YAltura;
	private int larguraMenu;
	private int alturaMenu;
	private Graphics g;
	private Image imgMenu;

	private void menuCanvas(){
		larguraMenu = 90;
		alturaMenu = 120;
		XLargura = (getWidth()/2) - (larguraMenu/2);
		YAltura = (getHeight()/2) - (alturaMenu/2);
		imgMenu = Image.createImage(larguraMenu, alturaMenu);
		System.out.println(g = imgMenu.getGraphics());
		g.setColor(0x000000);
		g.drawRect(XLargura, YAltura, larguraMenu, alturaMenu);
		g.drawString("Sair", 0, 0, Graphics.TOP | Graphics.HCENTER);
	}

	protected void paint(Graphics g) {
		menuCanvas();
	}
}

desenhando está, só que vc nao está mostrando o desenho, isso pq o desenho está sendo feito no objeto Graphics da imagem e ñ no objeto Graphics da tela (Canvas) que passado na função paint

mudei sua classe CanvasMenu, veja aí onde ta as diferenças que vc vai sacar oq acontece

class CanvasMenu extends Canvas
{
	private int lar, alt;
	private int x, y;
	private Image img;

	public CanvasMenu()
	{
		// define a largura e altura da imagem
		lar = 90;
		alt = 120;

		// define a poição da imagem em relação à tela
		x = (getWidth() - lar) / 2;
		y = (getHeight() - alt) / 2;

		img = Image.createImage(lar, alt);
	}

	protected void paint(Graphics g)
	{
		Graphics gimg = img.getGraphics();
		gimg.setColor(0x000000);
		// a posição é relativa à imagem, e não à tela
		gimg.drawRect(0, 0, lar - 1, alt - 1);
		gimg.drawString("Sair", 1, 1, Graphics.TOP | Graphics.LEFT);

		// a posição é relativa à tela
		g.drawImage(img, x, y, Graphics.TOP | Graphics.LEFT);
	}
}

mude as posições q eu coloquei pra vc ver oq acontece, experimente tirar aqueles -1 e desenhar a string na posção 0, 0 ao invés de 1, 1

qlqr coisa tamo ae
flw cara, t+

Valeu, quikkoo… qualquer coisa posto de novo. Obrigado.