·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
您现在的位置:天新网 > 软件开发 > Java开发 > J2ME > J2ME文摘
J2ME中用低级界面实现简单的数字输入
http://dev.21tx.com 2005年11月04日 J2ME开发网 大工608


  最近在写一个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()方法来进行实际的侦测。

上一篇: J2ME中用Timer和TimerTask实现欢迎界面
下一篇: J2ME平台手机游戏移植的体会

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net