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

作者在写J2ME程序时,为避开手机上数字输入繁琐问题,改用低级界面实现数字输入。文中给出了相关代码,包括定义保存数字的StringBuffer、绘制界面、按键功能处理等,还提醒开发时用Canvas.hasRepeatedEvents()方法侦测keyReapeated()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:大工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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值