您所在的位置: 首页 > 开发 > 移动 >

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

http://developer.51cto.com  2006-07-25 19:03  大工608  天级  我要评论(0)
  • 摘要:最近在写一个j2me程序 其中包括一个数字输入的textfield 在手机上面实现的时候(s40模拟器)数字的输入很烦琐,所以想避开这种问题 于是改用低级界面实现:
  • 标签:J2ME
 最近在写一个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()方法来进行实际的侦测。
(责任编辑:海纳百川 qlmzl11268@hotmail.com  TEL:(010)68476606-8007)

J2ME手机开发技术基础
J2ME游戏开发应用
Scala编程语言
大型网站架构技术专家谈
ASP.NET视频教程
 
 验证码: (点击刷新验证码)   匿名发表
  • 亮剑.NET. 图解C#开发实战

  • 作者:李新峰 付志涛 缪勇
  • 本书采用全新的图解思路,分3篇介绍使用微软C#语言开发实际应用程序的基本知识。第1篇包括10章,介绍了C#语言的基础知识,主要..
Copyright©2005-2009 51CTO.COM 版权所有