Hey everybody

I have a small problem...
I have a class wish defines a menu-structure and from one of the options I would like to draw a Canvas.,this Canvas (subclass) is called Board.
But real problem is that on this board, there is one command, BACK, and by executing this command the user should return to the game menu (playMenu)

My code looks like this
Game.java


package BackG;
import javax.microedition.midlet.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
/**
*
* @author Christian V Petersen
* @version
*This MIDlet creates the main menus and paths to the different game-functions
*The exact game-functionality is placed in the orher files
* */
public class Game extends MIDlet implements CommandListener
{
public static Board instance;

private Board the_board; // the subclass of Canvas that displays the board and runs the actual game

private boolean firstTime = true;
private boolean firstTimeUser = true;
public String userName;
private static String Initial_Text = "Enter user name here - max 10 characters"; // initial text for input to username

//Commands
private Command BACK = new Command("Back",Command.BACK,0);
private Command EXIT = new Command("Exit",Command.EXIT,1);
private Command DONE = new Command("Done",Command.OK,1);
// all other commands are from List.getSelectedIndex()

private Command currentCommand = null;
private Displayable currentDisplayable;

//Dipslayables: menuLists and screens
private Display display;
private TextBox inputName;
private List mainMenu;
public List playMenu;
private List highscoreMenu;
private Form privateScore;
//private TextField userScore;
private Form top5;
//private TextField top5Score;
String userScore;
String top5Score;

// string arrays for menus
String main[] =
{
"Username","Highscore","Play"
};

String highscore[]=
{
"Private Score", "Top 5"
};

String play[]=
{
"Play online","Local"
};

public Game()
{
super();
display = Display.getDisplay(this);
the_board = new Board();

// Instantiate the menus; mainMenu is done in startApp()

highscoreMenu = new List("Highscore",Choice.IMPLICIT,highscore,null);
highscoreMenu.addCommand(BACK);
highscoreMenu.setCommandListener(this);

playMenu = new List("Chooce game",Choice.IMPLICIT,play, null);
playMenu.addCommand(BACK);
playMenu.setCommandListener(this);

inputName = new TextBox("Profile",Initial_Text,100,0);
inputName.addCommand(DONE);
inputName.addCommand(BACK);
inputName.setCommandListener(this);

userScore = "No scores stored"; // this temp, socres should be stored on device
top5Score = "No scores to see";

privateScore = new Form("Score");
privateScore.append(userScore);
privateScore.addCommand(DONE);
privateScore.setCommandListener(this);

top5 = new Form("Top 5 in the Wold!");
top5.append(top5Score);
top5.addCommand(DONE);
top5.setCommandListener(this);

firstTime = true;

instance = the_board;


}

public void pauseApp()
{
}

public void destroyApp(boolean unconditional)
{
// should be changed to support storage
inputName = null;
Initial_Text=null;
instance = null;
}

public void quit()
{
destroyApp(true);
notifyDestroyed();
}

public void startApp()
{

if(firstTime==true)
{
mainMenu = new List("Main Menu",Choice.IMPLICIT,main,null);
mainMenu.addCommand(EXIT); // no back command needed
mainMenu.setCommandListener(this);
display.setCurrent(mainMenu);

firstTime= false;
}
}

public static Board getMIDlet()
{
return instance;
}

public void commandAction(Command c, Displayable d)
{
currentCommand = c;
currentDisplayable = d;

String com_type = currentCommand.getLabel();

//All the commands must be checked
if(com_type=="Back")
{
if(
currentDisplayable.equals(inputName) ||
currentDisplayable.equals(highscoreMenu) ||
currentDisplayable.equals(playMenu)
)
{
display.setCurrent(mainMenu); // show the mainMenu
}
}

else if(com_type=="Exit")
{
quit();
}

else if (com_type=="Done")
{
if(currentDisplayable.equals(inputName))
{
userName = inputName.getString();
firstTimeUser = false;
display.setCurrent(mainMenu);
}

else if (currentDisplayable.equals(privateScore) || currentDisplayable.equals(top5))
{
display.setCurrent(highscoreMenu);
}
}

else if (c== List.SELECT_COMMAND)
{
if(currentDisplayable.equals(mainMenu)) // options from the mainMenu
{
switch (mainMenu.getSelectedIndex())
{
case 0:// if the shown list is Submenu1
if(firstTimeUser == false)
{
inputName= new TextBox("Profile",userName,10,0);
inputName.addCommand(DONE);
inputName.addCommand(BACK);
inputName.setCommandListener(this);

}
display.setCurrent(inputName);
break;

case 1:// if the shown list is Submenu2
display.setCurrent(highscoreMenu);
break;

case 2:
display.setCurrent(playMenu);
break;

}
}

else if(currentDisplayable.equals(highscoreMenu)) //options from the highscoreMenu
{
switch (highscoreMenu.getSelectedIndex())
{
case 0:
display.setCurrent(privateScore);
break;

case 1:
display.setCurrent(top5);
break;

}
}

else if (currentDisplayable.equals(playMenu))
{
switch(playMenu.getSelectedIndex())
{
case 0:
//Play online function
display.setCurrent(the_board);
// online var should be true

break;
case 1:
// Play local function
display.setCurrent(the_board);
// offline var should be true
break;
}
}


}

}//end commandAction
} // end Game.class
:--------------------------------------------------------------------------------------

Board.java/*
* Board.java
*
* Created on 10. marts 2005, 12:45
*/

package BackG;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
*This class must be a subclass of Canvas because the Canvas class is abstract.
*But there is no need for state-funcs only paint and commandAction
*
* @author Christian V Petersen
* @version
*/
public class Board extends Canvas implements CommandListener
{
private Command BACK = new Command("Back",Command.BACK,0);
private Display display;

public Board()
{
// There must be a call to super because this is the Canvas.class no arg constructor
super();

addCommand(BACK);
setCommandListener(this);
}

public void commandAction(Command c, Displayable d)
{
if(c==BACK)
{
//display.setCurrent();
}
}

protected void paint(javax.microedition.lcdui.Graphics graphics)
{
//graphics
}

}


//end Board.class