为了方便广大考生更好的复习,小编编辑整理提供了Java认证:J2ME中用低级界面实现数字输入,以供各位考生考试复习参考,希望对考生复习有所帮助。

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

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