-1

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

4

3 回答 3

1

是的,您可以同时使用两者,但不能同时使用。您可以使用 来在它们之间切换Display.setCurrent()

于 2011-06-20T07:40:45.570 回答
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);

参考:
代码项目

于 2012-02-16T10:13:08.757 回答
0

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

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

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

于 2011-10-17T13:56:05.997 回答