Aplicativo em j2me alguem pode dar uma olhada no código

3 respostas
M

este código deve realizar o seguinte: o usuário a cada pressionar de enter faz com que o programa pegue as coordenadas do ponto onde ele posicionou o cursor, que no caso é uma figura quadrado que pode ser movimentado pelas teclas de movimentação do teclado, essas coordenadas serão armazenadas num array um p/ x e outro p/ y ao final de quatro pressionamentos de enter do usuário os pontos pressionados serão ligados dando origem a um quadrilátero, eu gostaria que alguém compilasse esse código pq quando tento executar ele dá erro na classe desenhaQuadrado,valew…

import javax.microedition.midlet.MIDlet;

import javax.microedition.midlet.MIDletStateChangeException;

import java.util.Vector.<em>;

import javax.microedition.lcdui.</em>;

public class desenhaQuadrado extends MIDlet implements CommandListener{

display tela;
command Exit;

public desenhaQuadrado() {
	this.tela = Display.getdisplay(display);
	this.Exit = new Command("Exit",Command.Exit,0);
	
	//iniciando a canvas
	this.canvas = new quadradoCanvas;
	//adiciona o exit ao canvas
	this.canvas.addCommand(this.Exit);
	//prepara o canvas para escutar
	this.canvas.setCommandListener(this);
	
}

protected void startApp() {
	
	//define a tela para que o objeto da quadradoCanvas possa desenhar na tela
	this.tela.setcurrent(this.canvas);
	
}

protected void pauseApp() {
	// TODO Auto-generated method stub

}

protected void destroyApp(boolean unconditional) {
	// TODO Auto-generated method stub

}

public void exitMIDlet()
{
    destroyApp(true);

    notifyDestroyed();
}

}

//desenha o objeto quadrado para que o mesmo possa ser movimentado
//pela tela
class quadradoCanvas extends Canvas
{

public quadradoCanvas()
{
	
}

public void paint(Graphics g)
{
	
	g.fillRect(1, 1, 4, 4);
	g.setColor(0, 0, 255);
	
}

}

class movimento extends Canvas
{

int constante = 2;
int indiceQuadradoX = 1;//coordenada em x de inicialização do objeto
int indiceQuadradoY = 1;//coordenada em y de inicialização do objeto
int tamTelaX = 40; //tamanho da tela espaço no qual o objeto pode locomover-se
int tamTelaY = 40;
d = new desenho;

public movimento()
{
	
}

//faz o tratamento de eventos de tecla
protected void keyPressed(int tecla)
{    

        if(  (tecla == getKeyCode(RIGHT)  ) &amp;&amp; (indiceQuadradoX &lt; tamTelaX) ) 
        	indiceQuadradoX = indiceQuadradoX + constante;
        else if( (tecla == getKeyCode(LEFT)  &amp;&amp; (indiceQuadradoX &gt; 0) )
        	indiceQuadradoX = indiceQuadradoX - constante; 
        else if( (tecla == getKeyCode(DOWN) ) &amp;&amp; (indiceQuadradoY &lt; tamTelaY) )
        	indiceQuadradoY = indiceQuadradoY + constante;
        else if( (tecla == getKeyCode(UP) ) &amp;&amp; (indiceQuadradoY&gt;0) ) 
        	indiceQuadradoY = indiceQuadradoY - constante;
        else if( (tecla == getKeyCode(VK_ENTER) ) )//n tem vK_enter em j2me
        {
                varre();
        }
        repaint();
}

}

public class Ponto extends Canvas
{

int i = 0;
int posX;
int posY;
private quadradoCanvas qc; //instancia da classe desenhaQuadrado

Ponto()
{
	
}	
	
public paint( Graphics g)
{

	//pega as corrdenadas do ponto
	posX = qc.getx();
	posY = qc.gety();
	//desenha o ponto
	g.fillRect(posX, posY, 0, 0);
	g.setColor(0, 255, 0);
	
}

}

public class varre extends Vector
{

private quadradoCanvas qc;
private Ponto p;
int arrayX[] = new int [4];
int arrayY[] = new int [4];
int i;
int j;
int k;
int pos1X;
int pos2X;
int pos1Y;
int pos2Y;
public varre(){
//o laço procura os pontos existentes na tela e armazena-os no vetor
	for(i = 0; i&lt; 40; i++){
		for(j = 0; j&lt; 40; j++){
			//n sei se pode detectar o ponto dessa forma
			if(p){
			
				arrayX[j] = qc.getx();
				arrayY[i] = qc.gety();
		
			}
		}	
	}
}

public desenha(Graphics g){
	
	//desenha a linha que liga o primeiro ponto do array ao segundo,
	//a que liga do segundo ao terceiro e deste ao quarto.
	for(k = 0; k &lt; 4; k++){
		
		pos1X = arrayX[k];
		pos2X = arrayX[k + 1];
		pos1Y = arrayY[k];
		pos2Y = arrayY[k + 1];
		g.drawLine(pos1X, pos1Y, pos2X, pos2Y);
	} 
	//aqui faz-se o fechamento ligando o quarto ponto do array ao primeiro.
	for(k = 0; k &lt; 4; k++){
		
		if(k == 0){
			
			pos1X = arrayX[0];
			pos1Y = arrayY[0];
			
		}
		else if(k == 3){
			
			pos2X = arrayX[3];
			pos2Y = arrayY[3];
			
		}
		g.drawLine(pos1X, pos1Y, pos2X, pos2Y);
	}	
}

}

3 Respostas

N
public class desenhaQuadrado extends MIDlet implements CommandListener&#123; 

display tela; 
command Exit;

Marcela, já tentou corrigir display para Display?

M
"NewbieJava":
public class desenhaQuadrado extends MIDlet implements CommandListener&#123; 

display tela; 
command Exit;

Marcela, já tentou corrigir display para Display?

valew vou tentar fazer isso...

BrunoBastosPJ

Olha marcela eu não olhei o código linha por linha, mas copiei e colei no eclipse deu muitos erros… Se você copiou esse código de algum lugar da uma olhada com calma linha por linha

Criado 11 de setembro de 2006
Ultima resposta 12 de set. de 2006
Respostas 3
Participantes 3