Codename One Timer问题

时间:2014-02-28 14:12:56

标签: java swing timer codenameone

我试图在Codename One中使用计时器,但它只有" UITimer"我似乎无法弄清楚,也找不到任何例子。

所以我尝试了摇摆计时器,但它给了我错误:

  

codename1.ui.events.ActionListener无法转换为java.awt.event.ActionListener

使用此代码

tim = new Timer(1000, new ActionListener() {
      public void actionPerformed(ActionEvent evt) {

      }
});

提前致谢!

2 个答案:

答案 0 :(得分:1)

这是因为你的代码引用了哪个ActionListener类是不明确的,因为你可能导入了CodeNameOne而不是Java内置的,或者两者都被强制了。

在第一种情况下,只需将import com.codename1.ui.events.ActionListener;替换为import java.awt.event.ActionListener;

如果您需要导入两个类,则必须在类的名称前加上它的包名称。在您的情况下,您想要使用Java包中的类:

tim = new Timer(1000, new java.awt.event.ActionListener() {
    public void actionPerformed(ActionEvent evt) {

    }
});

答案 1 :(得分:1)

您应该删除awt的导入,并且永远不会导入这些类。

UITimer适用于动作事件,但您使用了计时器。如果您使用了来自javax.swing的Timer,那么删除所有那些也是错误的导入。

如果使用java.util.Timer,则应使用TimerTask而不是动作侦听器。这是NetBeans的一个问题,它不允许设置单个项目bootclasspath,因此导入我们不支持且不会编译的类。

UITimer示例位于开发者指南的末尾:http://www.codenameone.com/developer-guide.html 以及整个讨论论坛:https://groups.google.com/forum/#!searchin/codenameone-discussions/UITimer