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

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

作者:大工608 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=953

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

有什么问题email:joyby@163.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航