Erro de compilação wtk

[color=“black”]Olá, pessoal. Estou iniciando no j2ME, e gostaria de tirar uma dúvida. Naquela apostila para iniciantes, disponível aqui no portal java, o autor faz um programinha em que um quadrado move-se na tela do celular.

Conforme está na apostila:

Agora que aprendemos a teoria, vamos ver como ficaria uma aplicação com
renderização dependente de tempo.
Primeiro cria-se uma classe que herda de Canvas para desenharmos o que
queremos na tela.

[color=black]import javax.microedition.lcdui.*;
class MeuCanvas extends Canvas
{
// posição do objeto que se movimentará na tela
private int x=0;
private int y=0;
int largura;
int altura;
public MeuCanvas()
{
this.largura=this.getWidth();
this.altura=this.getHeight();
}
public void paint(Graphics g)
{
// pinta o fundo da tela de branco e o objeto de preto
g.setColor(255,255,255);
g.fillRect(0,0,this.largura,this.altura);
g.setColor(0,0,0);
g.drawRect(x,y,15,15);
}
// vamos criar métodos para mudarmos a posição do quadrado na tela
public void setPositionX(int x)
{this.x=x;}
public void setPositionY(int y)
{this.y=y;}
}
[/color]

[color=“blue”]Precisamos de duas tarefas para serem agendadas, uma para a movimentação e
outra para pintar na tela.
Vamos lá…[/color]

import java.util.TimerTask;
class TarefaMovimento extends TimerTask
{
// como precisamos acessar o método setPositionX() e setPositionY() da classe
MeuCanvas,
//temos que passá-la como parâmetro no construtor
MeuCanvas canvas;
// precisamos da altura e largura da tela para fazermos o algoritmo do movimento
int largura;
int altura;
//precisamos do ponto de movimento e variáveis pra troca de sentido do movimento
int x=1;
int y=1;
int xs=1;
int ys=1;
public TarefaMovimento(MeuCanvas canv)
{
this.canvas=canv;
this.largura=this.canvas.largura;
this.altura=this.canvas.altura;
}
public void run()
{
//troca o sentido do movimento
if(x<=0 || x>=this.largura-15)// - 15 pois esa é a largura do quadrado
{xs*=-1;}
if(y<=0 || y>=this.altura-15)// - 15 pois esa é a largura do quadrado
{ys*=-1;}
//incrementa ou decrementa as posições
x+=(1xs);
y+=(1
ys);
// muda a posição na classe MeuCanvas
this.canvas.setPositionX(x);
this.canvas.setPositionY(y);
}
}

[color=“blue”]Agora vamos fazer a tarefa para pintar o objeto na tela.[/color]

import java.util.TimerTask;
class TarefaRenderizacao extends TimerTask
{
MeuCanvas canvas;
public TarefaRenderizacao(MeuCanvas canv)
{
this.canvas=canv;
}
public void run()
{
//precisamos apenas pintar o objeto na posição que a outra
//tarefa o deixou no momento
this.canvas.repaint();
}
}

[color=“blue”]Já temos as duas tarefas, agora precisamos agendá-las.
Isso iremos fazer na classe principal do Aplicativo, aquela que herda de MIDlet.
Vamos lá…[/color]

[b]import javax.microedition.midlet.;
import javax.microedition.lcdui.
;
import java.util.*;
public class DependenteTempo extends MIDlet implements CommandListener
{
Command sair;
Display tela;
MeuCanvas canvas;
TarefaMovimento tm;
TarefaRenderizacao tr;
Timer timerMov;
Timer timerRender;
public DependenteTempo()
{
this.sair=new Command(“Sair”,Command.EXIT,0);
this.canvas=new MeuCanvas();
this.canvas.addCommand(this.sair);
this.canvas.setCommandListener(this);
// criamos as tarefas de movimento e renderização
this.tm=new TarefaMovimento(this.canvas);
this.tr=new TarefaRenderizacao(this.canvas);
// cria um Timer(Agendador) para cada tarefa
this.timerMov=new Timer();
this.timerRender=new Timer();
}
public void startApp()

{
this.tela=Display.getDisplay(this);
this.tela.setCurrent(this.canvas);
// agenda cada tarefa com seu tempo de repetição determinado
// nesse caso deixei a movimentação mais freqüente que a renderização
this.timerMov.scheduleAtFixedRate(this.tm,0,10);
this.timerRender.schedule(this.tr,0,100);
}
public void pauseApp()
{
}
public void destroyApp(boolean b)
{
}
public void commandAction(Command c,Displayable d)
{
if(c==this.sair)
{
this.destroyApp(true);
this.notifyDestroyed();
}
}
}[/b]

[color=“blue”]Pronto, agendamos as tarefas no inicio da aplicação (startApp()) e temos um
quadrado se movimentando por toda a tela.
Para rodar isso em seu WTK, basta você criar um novo Projeto com o nome de:
DependenteTempo e adicionar todas as classes acima no diretório /src da sua aplicação.
Não se esqueça que o nome do arquivo de cada classe deve ser o nome da
classe e a extensão de codigos fonte java (.java).[/color]

PESSOAL, EU FIZ TUDO o que ele disse acima. Só que está aparecendo a seguinte mensagem de erro no compilador:

Project “DependenteTempo” loaded
Running with storage root DefaultColorPhone
Running with locale: Portuguese_Brazil.1252
Unable to create MIDlet DependenteTempo
java.lang.ClassNotFoundException: DependenteTempo
at com.sun.midp.midlet.MIDletState.createMIDlet(+29)
at com.sun.midp.midlet.Selector.run(+22)
Unable to create MIDlet DependenteTempo
java.lang.ClassNotFoundException: DependenteTempo
at com.sun.midp.midlet.MIDletState.createMIDlet(+29)
at com.sun.midp.midlet.Selector.run(+22)

Alguém tem alguma idéia do que pode estar errado? Se puderem responder, ficarei muito grato, rapazeada. obrigado.[color="#444444"][/color]

Você está criando as classes de forma certa? Eu executei os códigos que tu postou e funcionou normal!

hum… acho que tô errando na criação das classes. tem como dar uma força?? obrigado.

Eu só abri o wtk e criei um novo projeto onde o “midlet Class name” eu coloquei com o nome DependenteTempo. Ai pra cada classe que tu mostrou ali eu criei arquivos .java e gravei dentro do diretório src do projeto. Depois compilei (build) e executei sem erros.

Olá,
Eu sou o responsável por esse código aí.
Você criou os arquivos com o nome igual? Letras maiúsculas e minusculas tudo igualzinho?