快速业务通道

J2ME中用低级界面实现简单的数字输入 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

J2ME中用低级界面实现简单的数字输入

时间:2011-02-25

最近在写一个j2me程序 其中包括一个数字输入的textfield 在手机上面实现的时候(s40模拟器)数字的输入很烦琐,所以想避开这种问题 于是改用低级界面实现:

private StringBuffer sb=new StringBuffer(); //定义一个StringBuffer用来保存输入的数字 private int len=4; //想输入的数字的长度 private int temp; //取数字 protected void paint(Graphics g) { g.setColor(WHITE); g.fillRect(0,0,getWidth(),getHeight()); g.setColor(BLACK); g.drawString(sb.toString(),getWidth()/2,getHeight()/2,Graphics.TOP|Graphics.HCENTER); //显示输入内容 } protected void keyPressed(int keynum) { if (sb.length()==len) //开始键功能描述 { switch (keynum) { case KEY_STAR: temp=Integer.parseInt(sb.toString()); //得到了屏幕中输入的数字 接下来自己可以利用数字按下*开始动能 break; default: break; } } if (sb.length() { switch (keynum) { case KEY_NUM1: sb.append("1"); break; case KEY_NUM2: sb.append("2"); break; case KEY_NUM3: sb.append("3"); break; case KEY_NUM4: sb.append("4"); break; case KEY_NUM5: sb.append("5"); break; case KEY_NUM6: sb.append("6"); break; case KEY_NUM7: sb.append("7"); break; case KEY_NUM8: sb.append("8"); break; case KEY_NUM9: sb.append("9"); break; case KEY_NUM0: sb.append("0"); break; default: break; } } if(sb.length()>0) //退格键函数描述 { if(keynum==KEY_POUND) sb.deleteCharAt(sb.length()-1); } repaint(); } protected void keyReapeated(int keynum) { if(sb.length()>0) //长按一次性去除建函数描述 if(keynum==KEY_POUND) sb=null; } repaint(); }

注意:keyReapeated()方法JTWI 并未做硬性规定,所以我们在开发的时候一定要用Canvas.hasRepeatedEvents()方法来进行实际的侦测。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号