如何从 LWUIT 组件中处理对话框
Posted
技术标签:
【中文标题】如何从 LWUIT 组件中处理对话框【英文标题】:How can I Dispose Dialog box From LWUIT Component 【发布时间】:2012-01-11 04:43:59 【问题描述】:我正在使用 LWUIT(Midlet 移动应用程序)开发一个项目。当我按数字键时,将打开一个对话框。当我按下 #,0,* 键时,对话框应该关闭。
我正在使用Dialog.dispose()
方法关闭对话框。但它不起作用。下面是我的代码。谁能告诉我我的代码有什么问题?
public class javaForm extends Component implements ActionListener
Dialog d=new Dialog();
public void keyPressed(int key)
System.out.println("Key pressed :"+key);
switch(key)
case 48:
d.show(130,20,30,30,true);
break;
case 49:
d.show(130,20,30,30,true);
break;
case 50:
d.show(130,20,30,30,true);
break;
case 51:
d.show(130,20,30,30,true);
break;
case 52:
d.show(130,20,30,30,true);
break;
case 53:
d.show(130,20,30,30,true);
break;
case 54:
d.show(130,20,30,30,true);
break;
case 55:
d.show(130,20,30,30,true);
break;
case 57:
d.show(130,20,30,30,true);
break;
case 56:
d.show(130,20,30,30,true);
break;
case 42:
d.dispose();
break;
case 35:
d.dispose();
break;
default:
d.dispose();
break;
public void actionPerformed(ActionEvent ae)
throw new UnsupportedOperationException("Not supported yet.");
实际上javaForm 是一个使用LWUIT 开发的java 程序,我在MIDLET 中调用这个javaForm,即javaForm1。我包括了所有必要的软件包。
【问题讨论】:
在提出新问题之前,您应该接受其他问题 您检查过这些键的键码吗? Already I told you 在机箱内使用 println 看看发生了什么。 是的@Bharath。我试过了,但不是 Works。我按了键 2,它显示 50。我再次按了 2,它没有打印任何东西 完全同意@frayab。您必须接受其他问题。如果您想得到答案,这一点很重要。 【参考方案1】:你为什么不使用Form.addGamekeyListener()
?
将gameKeyListener
放入Form
(在Form
中扩展ActionListener
)然后在actionPerformed(ActionEvent ae)
中使用ae.getKeyEvent
捕获密钥并关闭Dialog
。
使用Canvas
映射游戏键。例如:Canvas.FIRE
。
【讨论】:
@jmunoz.. GameKeyListener 下的键是什么。我想使用所有的移动键来显示 Dialog,以 Dispose Dialog.. 使用 addKeyListener 而不是游戏键监听器,就像 jmunoz 解释的那样。您还可以继承对话框并覆盖 keyReleased 回调。 为了什么? Form.addKeyListener() 就像游戏按键监听器。重写一个方法只是派生 LWUIT 的 Form 并声明 public void keyReleased(int keyCode) ...以上是关于如何从 LWUIT 组件中处理对话框的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 BorderLayout.CENTRE 定位的 Dialog.showPacked() 时出现奇怪的 LWUIT 对话框行为