**Witam,
Tak jak w temacie. Piszę pierwszą aplikację na bazie gry w węża. Problem polega na tym, że w klasie Canvas nie rozpoznaje mi funkcji setCurrent(). Generalnie po wciśnięciu Menu podczas trwania Canvas ma wyjść do menu głównego w Midlet
Klasa Midlet
**
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.;
import javax.microedition.lcdui.;
import java.util.*;
public class TestCanvas extends MIDlet implements CommandListener
{
MyCanvas mc;
private Command backCommand = new Command("Wróć", Command.BACK, 1);
public Display display;
public List list = new List("Menu", List.IMPLICIT);
public TestCanvas()
{
// Display scrn = Display.getDisplay(this);
// MyCanvas mc = new MyCanvas();
// scrn.setCurrent(mc);
list.append("Start", null);
list.append("Szybkość", null);
list.append("Wyjście", null);
list.setCommandListener(this);
display = Display.getDisplay(this);
}
public void startApp() {
display.setCurrent(list);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction (Command c, Displayable s)
{
if (c == list.SELECT_COMMAND)
{ // jeżeli został wybrany któryś z elementów menu
/* Jeżeli jest to Start to tworzony jest nowy obiekt mc
(dzięki temu nie trzeba wyłączać całej aplikacji żeby
zagrać jeszcze raz) oraz jest on wyświetlany. */
if (list.getString(list.getSelectedIndex()) == "Start")
{
mc=new MyCanvas();
display.setCurrent(mc);
}
if (list.getString(list.getSelectedIndex()) == "Wyjście")
{
notifyDestroyed();
}
}
}
}
Klasa Canvas
class MyCanvas extends Canvas implements Runnable, CommandListener {
private Command anuluj = new Command("Menu", Command.BACK, 1);
public MyCanvas() {
setCommandListener(this); // ustawianie nasłuchiwania zdarzeń
addCommand(anuluj); // ustawienie możliwości powrotu do menu głównego gry
if (runner == null)
{
runner = new Thread(this);
runner.start();
}
}
...
...
...
public void commandAction(Command command, Displayable displayable)
{
if (command == anuluj)
{
display.setCurrent(list);
}
}
**
**