Canvas 在j2me中从画布中删除命令
我有一个画布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
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
}
}
});