我试图在Codename One中使用计时器,但它只有" UITimer"我似乎无法弄清楚,也找不到任何例子。
所以我尝试了摇摆计时器,但它给了我错误:
codename1.ui.events.ActionListener
无法转换为java.awt.event.ActionListener
使用此代码
tim = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent evt) {
}
});
提前致谢!
答案 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