当前位置:主页   - 电脑 - 程序设计 - JAVA
J2ME中用低级界面实现简单的数字输入
来源:网络   作者:   更新时间:2012-06-07
收藏此页】    【字号    】    【打印】    【关闭

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

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明