Canvas 在j2me中从画布中删除命令

Canvas 在j2me中从画布中删除命令,canvas,java-me,command,Canvas,Java Me,Command,我有一个画布J2ME项目,我想删除命令时,他们使用一次! 我写了这个空白,但它不工作 public void removeCmd(){ m_canvas.removeCommand(ersal); m_canvas.removeCommand(virayesh); m_disp.setCurrent(m_canvas); repaint(); } 这是我的完整代码: import javax

我有一个画布J2ME项目,我想删除命令时,他们使用一次! 我写了这个空白,但它不工作

      public void removeCmd(){
          m_canvas.removeCommand(ersal);
          m_canvas.removeCommand(virayesh);
          m_disp.setCurrent(m_canvas);
          repaint();
      }
这是我的完整代码:

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
import com.sun.midp.io.j2me.comm.WAP;
import com.sun.midp.io.j2me.comm.SDA;

public class Demo extends MIDlet
{
    Command ersal = new Command("Ersal", Command.STOP, 1);
    Command virayesh = new Command("Virayesh", Command.SCREEN, 1);

    private Canvas m_canvas = new DemoCanvas();
 private Display m_disp;
     int v = 0;

     String a;
     int step = -1;
 public Demo() {
  // TODO Auto-generated constructor stub
  m_disp = Display.getDisplay(this);
  m_disp.setCurrent(m_canvas);          
 }
 private class DemoCanvas extends Canvas implements CommandListener
 {

 private String info = "Barname Estelam\n*:Meno Aval\n\nYek dokme ra\nfeshar dahid";

  public DemoCanvas(){

      }

  public void paint(Graphics g)
  {

   g.setColor(0xFFFFFF);
   g.fillRect(0, 0, this.getWidth(), this.getHeight());
   g.setColor(0);      
   g.drawString(info, 0, 5, Graphics.LEFT|Graphics.TOP);

      }
      public void removeCmd(){
          m_canvas.removeCommand(ersal);
          m_canvas.removeCommand(virayesh);
          m_disp.setCurrent(m_canvas);
          repaint();
      }
  protected void keyPressed(int keyCode)
  {
          if(keyCode==42 || step==-1){//star key
              info="1:moshakhasat\nkhodro \n2:estelam taghib \n3:etelaat malek \n4:estelam khalafi";
              step=0;
              a="";
              removeCmd();   ///Here i gonna remove the commands! or when "Ersal" Command put...
              repaint();
              WAP.WAP_InputMethodContents("");
          }
          String content = WAP.GetT9String();
          if(step==2){
              step=3;
              //tayid T9
              m_canvas.addCommand(ersal); //Here Commands added
              m_canvas.addCommand(virayesh);
              m_canvas.setCommandListener(new CommandListener() {

  public void commandAction(Command c, Displayable d) {
      String lbl = c.getLabel();
      if(lbl.equals("Ersal")){
        String m = WAP.GetT9String();
        SDA.SDS_SendMsg("20002",m);
        removeCmd();
        info = WAP.GetT9String() + "\nersal shod" + "\n\n*:meno aval";
        repaint();
      }          else if(lbl.equals("Virayesh")){
          step=2;
          WAP.WAP_InputMethodContents("");
          WAP.SwitchToT9InputMethod(0);
      }
      }
});
           }
    public void commandAction(Command c, Displayable d) {}


     }
 protected void destroyApp(boolean unconditional)
   throws MIDletStateChangeException {
  // TODO Auto-generated method stub
         notifyDestroyed();

 }

     protected void pauseApp() {}
 protected void startApp() throws MIDletStateChangeException {
  // TODO Auto-generated method stub
 }

下面是一个例子,说明如何实现您的目标。我使用一个表单,因为Canvas扩展了可显示性,所以它的工作原理是一样的。这段代码删除了命令ok,相同的逻辑可以应用于任意多个命令

Form myForm = new Form("Test form");
Command ok = new Command("OK",Command.OK,0);
Command cancel = new Command("CANCEL",Command.CANCEL,1);
myForm.addCommand(ok);
myForm.addCommand(cancel);       
myForm.setCommandListener(new CommandListener(){
    public void commandAction(Command c, Displayable d) {
        if(c.getLabel().equals("OK")){
            //Do something...
            myForm.removeCommand(c);//remove the command ok
        }
    }
});

下面是一个例子,说明如何实现您的目标。我使用一个表单,因为Canvas扩展了可显示性,所以它的工作原理是一样的。这段代码删除了命令ok,相同的逻辑可以应用于任意多个命令

Form myForm = new Form("Test form");
Command ok = new Command("OK",Command.OK,0);
Command cancel = new Command("CANCEL",Command.CANCEL,1);
myForm.addCommand(ok);
myForm.addCommand(cancel);       
myForm.setCommandListener(new CommandListener(){
    public void commandAction(Command c, Displayable d) {
        if(c.getLabel().equals("OK")){
            //Do something...
            myForm.removeCommand(c);//remove the command ok
        }
    }
});