频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源:ITPUB 作者:佚名 出处:巧巧读书 2008-06-11 进入讨论组

    最近在写一个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开发教程J2ME游戏开发应用专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:指定类加载器的小技巧

较新的文章:JTable 单元格显示Tip
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章