我可以在应用程序中一起使用canvas和form

时间:2011-06-18 09:25:48

标签: java-me midp lcdui

我可以在应用程序中一起使用Canvas和form吗?如果是,那么我如何从Canvas访问表单?

3 个答案:

答案 0 :(得分:1)

是的,您既可以同时使用,也可以不同时使用。您可以使用Display.setCurrent()

在它们之间切换

答案 1 :(得分:1)

你需要你的Midlet找到它的显示(和表格)。你会把你的MIDlet的引用发送到画布构造函数。所以你的画布看起来像这样:

class myCanvas extends Canvas implements ... {
myMIDlet myHost; // the breadcrumb

    public myCanvas(... , myMIDlet host) {
    myHost = host; // remember our host MIDlet
    ...
    }

    ...
}   

“myMIDlet”是MIDlet的名称 在您的MIDlet中:

public class myMIDlet extends MIDlet implements ... {
...
Form myForm = new Form( ... 
...
myCanvas ggg = new myCanvas(... , this) // <=== note the last parameter-the key to it all
...   
//switch display to myCanvas
display.setCurrent(ggg);
...
}

如果你想从“myCanvas”获得表单(可能在你的画布的commandAction或keyPressed方法中),请执行以下操作:

Display disp = myHost.getDisplay();
disp.setCurrent(myHost.myForm);

参考:
   codeproject

答案 2 :(得分:0)

您可以将表单切换为画布。例如:

        canvasName c=new canvasName(this);
        Display.getDisplay(this).setCurrent(c);

但是,在Canvas to Form中,我不知道。