我周日写的程序,当时运行是没有问题的。今天运行奇了怪出问题。我看了代码没有问题就是出异常。代码如下
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;



public class TestExit extends MIDlet implements CommandListener
{
private Display display;
private Form form;
private final static Command cmd_exit=new Command("EXit",Command.EXIT,1);


public TestExit()
{
display=Display.getDisplay(this);
form=new Form("Exit");
}


protected void destroyApp(boolean arg0) throws MIDletStateChangeException
{

}


protected void pauseApp()
{

}


protected void startApp() throws MIDletStateChangeException
{
form.addCommand(cmd_exit);
form.setCommandListener(this);
display.setCurrent(form);

}


public void commandAction(Command c, Displayable d)
{

if(c==cmd_exit)
{
System.out.println("in");

try
{
destroyApp(false);
notifyAll();

} catch (MIDletStateChangeException e)
{
e.printStackTrace();
}
}
}

}
出的错误如下:
java.lang.IllegalMonitorStateException
at TestExit.commandAction(+24)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+280)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+258)







































































