0

我是一个点网开发人员。最近被迫在 j2me 中做一些事情。

我们在 j2me 中有用于处理 SMS-Text-Message 的应用程序,并根据这些短信制作不同的 UI。在此应用程序表单中,使用Canvas.

每个画布中有几个操作(通过用户选择不同的选项来执行)。其中一些operation create new canvas(类似于 multi Form show )。

是否有解决方案在每个画布表单中定义事件,然后在调用一些操作之后(如创建新画布)。

更多信息:

例如我有打击代码(画布形式):

public void keyPressed(int key) {
        if (key == -3) {
            // call OK-event 
        }
    }

这意味着当用户输入特定的键时,事件调用返回到 base midlet。(在这种情况下Canvas-Form,并且midlet在不同的 java 类中)。

为了在Dot net中做到这一点,我们在 中定义事件Canvas-Form,然后调用它。我们还处理该事件midlet-class并编写自己的代码 int 该处理方法

所以我的问题是在 J2me 中如何做同样的事情?

越来越多的附加信息(更新 2)

我对 java 和 j2me 的了解少于 Alga 对此的了解:)。所以也许我的问题看起来很荒谬。但我的问题有这些部分:

1)定义事件(我不知道怎么做!)
2)调用事件(我call OK-event在代码示例中写注释)
3)处理事件方法(我不知道怎么做!)

在我的搜索中,我看到了很多如何使用命令定义事件的示例。但是在画布形式中我应该定义Command这样做还是不需要,Command因为我在画布中绘制按钮。我希望有人能理解我对这个描述的问题。

并希望它可以防止投反对票:)

4

1 回答 1

3

这很容易做到。Canvas 可以监听按键和指针事件,以及命令。您可以在 API 中定义的各个方法中实现所需的操作。

如果您有兴趣,请在Canvas API 文档中找到更多详细信息。

创建新画布也很容易,因为这些都是普通的旧 Java 对象,没有魔法。您似乎主要在 C# 中活跃,希望它与您创建 C# 对象的实例非常相似。

唯一值得记住的细节是,要使您的画布(或任何Displayable)可见,您需要一个与您的应用程序对应的Display实例。获得该实例的唯一方法是从扩展MIDlet的类——从充当 MIDP 应用程序入口点的类。

您必须在那里获得 Display 实例,并进一步确保它在您需要的任何地方都可用。该实例也是一个普通的 Java 对象,与 C# 对象非常相似,并且公开它的方式不是特定于 MIDP 的。

如果您需要了解更多详细信息,还可以考虑学习参考教程和 API 文档,网址为


对于问题更新中提供的代码片段,找出发生了什么的方法是添加适当的日志记录并在模拟器中重新测试它,当您按键时查看模拟器控制台。

public void keyPressed(int key) {
        // add logging here:
        System.out.println("keyPressed [" + key + "]");
        if (key == -3) {
            // add logging here:
            System.out.println("calling OK-event");
            // call OK-event 
        }
}

有关示例代码,请查看 lcdui 标记 wiki,参考“MIDP 事件处理”教程,在EventEx3.java. lcdui 标记 wiki 中列出的另一个值得一看的教程是“J2ME 教程:使用 MIDP 2.0 的用户界面”,使用低级 API部分- 也有示例代码。

于 2012-07-01T15:04:37.700 回答