Duvidas sobre variaveis

6 respostas
R

Bom dia,

Sou iniciante em J2ME e estou fazendo um joguinho que advinha o nº de 1 a 63 que o usuário está pensando.E como sou iniciante estou com dificuladade de mudar as telas do game o codigo é esse:

import javax.microedition.lcdui.<em>;

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

import <a href="http://javax.microedition.io">javax.microedition.io</a>.*;
public class MMagica extends MIDlet implements CommandListener, Runnable

{

Display tela;

Command sair,entrar;

boolean inicio=false;

List menu;

NossaCanvas canvas;
public MMagica () 
{
	
	this.tela=Display.getDisplay(this);
	this.sair = new Command("Sair",Command.EXIT,0);
	this.entrar = new Command("Entrar",Command.SCREEN,1);
	this.canvas = new NossaCanvas();
       	this.canvas.addCommand(this.sair);
	this.canvas.addCommand(this.entrar);
	this.canvas.setCommandListener(this);
} 

public void startApp() 
{
	
	this.tela.setCurrent(this.canvas);
} 

public void pauseApp() 
{

} 

public void destroyApp(boolean i) 
{

}

public void run()
{

}

public void commandAction(Command c, Displayable d) 
{
	
	if (c == this.sair)
	{
		this.destroyApp(true);
		this.notifyDestroyed();
	}

	if (c == this.entrar)
	{
		inicio=true;
	}			
}

}

class NossaCanvas extends Canvas

{

Image logo,teste;

public NossaCanvas()

{	

try

{

logo=Image.createImage("/MMagica.png");

teste=Image.createImage("/trave.png");

}

catch(Exception e)

{

System.out.println(e.getMessage());

}

}

public void paint(Graphics g)

{
g.fillRect(0,0,this.getWidth(),this.getHeight());
		g.setColor(255,255,255);
		g.drawImage(logo,this.getWidth()/2,this.getHeight()/2,Graphics.HCENTER|Graphics.VCENTER);
		//if (inicio)
		//{
		//	g.drawImage(teste,this.getWidth()/2,this.getHeight()/2,Graphics.HCENTER|Graphics.VCENTER);
		//}
			
	}

}

Eu quero que o usuário faça interação somente com os botões de softkeys e de acordo que ele escolher, a tela que é desenhada em public void paint seja alterada.

C[size=“18”][color=“red”]omo é que uso variaveis incomuns em classes diferentes como estou tentando fazer com a variavel inicio?[/color][/size]

6 Respostas

C

Opa,
Cara… tem várias maneiras.
Acho que no teu caso vc deveria fazer uma variável inicio da classe NossaCanvas e dentro do commandAction modificar a variável inicio da classe NossaCanvas, assim:

this.canvas.inicio=true;

Ou se vc quiser tudo bonitinho vc faz um método pra setar a var inicio!

Ok?!

R

Cara,

Coloquei como você me explicou não deu erro,porem quando clico no entrar a tela não muda poderia me explicar PQ??? :twisted:

E não entendi a classe não é NossaCanvas,pq você usou this.canvas para se referir a variavel inicio que etá na clase NossaCanvas???
:oops: :cry: :cry: Desculpe a minha ignorancia :oops: :?:

C

Opa,
Vc instanciou a classe NossaCanvas:

this.canvas=new NossaCanvas&#40;&#41;;

logo eu tenho um objeto NossaCanvas na var thia.canvas

Aí na commandAction depois de setar true na var inicio vc deve chamar o repaint da NossaCanvas.

this.canvas.repaint&#40;&#41;;

Para aparecer o que vc deseja que apareça!

Falow!

R

CLV,

Muito obrigado,entendi agora e funcionou!!!

Agora outra duvida, se eu quizer usar uma variavel que está declarada em uma classe MM e quizer usa-la em uma classe XX ,Como seria??

Seria assim: import MM.*; dentro da class XX ???

:grin: :slight_smile: :slight_smile: :eek: muito obrigado pela explicação anterior!!! :grin:

C

Opa,
Vamo lá…
Vc so pode acessar uma var da classe MM se vc passar a classe o objeto da classe MM como parametro pra classe BB, aí vc tem uma referência pra classe MM dentro da classe BB.
Ou se a variável dentro da classe MM for static, mas ai vc não pode ficar modificando valor dela.
Existem outras maneiras… mas aprincipio aconselho vc a passar o objeto de MM por parâmetro pra instanciação da classe BB… segue um exemplo:

class MM
&#123;
   boolean aberto=false;
&#125;

class BB
&#123;
   MM instanciaDeMM;
   public BB&#40;MM mm&#41;
   &#123;
      instanciaDeMM=mm;
   &#125;
   public void metodoQualquer&#40;&#41;
   &#123;
     instanciaDeMM.aberto=true;
   &#125;
&#125;
....

MM meuMM=new MM&#40;&#41;;
BB meuBB=new BB&#40;meuMM&#41;;
meuBB.metodoQualquer&#40;&#41;;

Entendeu?

Falow!

R

Entendi tudo,Muito obrigado pela explicação. :grin: :slight_smile: :sad: :eek: :lol: :cool: :???: 8O :razz: :oops: :cry: :wink: :roll: :twisted: :evil: :!: :?: :idea: :arrow:

Criado 23 de junho de 2005
Ultima resposta 24 de jun. de 2005
Respostas 6
Participantes 2