Duvidas sobre variaveis

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

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]

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?!

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: :?:

Opa,
Vc instanciou a classe NossaCanvas:

this.canvas=new NossaCanvas();

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();

Para aparecer o que vc deseja que apareça!

Falow!

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:

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
{
   boolean aberto=false;
}

class BB
{
   MM instanciaDeMM;
   public BB(MM mm)
   {
      instanciaDeMM=mm;
   }
   public void metodoQualquer()
   {
     instanciaDeMM.aberto=true;
   }
}
....

MM meuMM=new MM();
BB meuBB=new BB(meuMM);
meuBB.metodoQualquer();

Entendeu?

Falow!

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