搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

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

天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区 QQ专区 QQ挂机 了解Web2.0
Flash MX 视频教程 Photoshop视频教程 网页设计视频教程 照片处理数字暗房
PPT动画演示教程 Excel动画教程集 Word动画演示教程 Windows Vista专区
特洛伊木马专区 黑客知识教程专区 防火墙应用专区 注册表应用专区
Windows API开发专区 网络编程专区 VB数据库编程专区 图像处理与多媒体编程

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


相关文章:
© 2006   www.java-asp.net