BlackBerry简单计数器

IDE:maxpda.com_BlackBerry_JDE_4.3.0

下载地址:http://down.maxpda.com/download/Blackberry_JDE_4.30-777.html

安装后,运行JDE,选择菜单项File -> New Workspace,输入空间名称:qq,接着右击空间名称,选择Create new Project in qq.jdw,如下图所示。

输入工程名:test,创建新工程,然后右击工程名,选择Create new File in Project,如下图所示。

输入类文件名:CalculatorApp.java,编写如下代码:

package test;



import net.rim.device.api.ui.*;

import net.rim.device.api.ui.component.*;

import net.rim.device.api.ui.container.*;

import net.rim.device.api.i18n.*;

import net.rim.device.api.system.*;

import net.rim.device.api.collection.util.*;



public class CalculatorApp extends UiApplication

{

    public static void main(String[] args)

    {

        CalculatorApp theApp = new CalculatorApp();

        theApp.enterEventDispatcher();

    }



    public CalculatorApp()

    {

        pushScreen(new Calculator_());

    }    

}



class Calculator_ extends MainScreen

{

    ObjectChoiceField ocf;

    EditField num1,num2;

    EditField result;



    public Calculator_()

    {

        super(DEFAULT_MENU | DEFAULT_CLOSE);

        

        String[] options = {"+", "-", "*", "/"};

        setTitle(new LabelField("Simple Calculator", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH));

        HorizontalFieldManager hfm = new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL);

        ButtonField mySubmitButton = new ButtonField("Count");

        ButtonField myResetButton = new ButtonField("Reset");

        ocf = new ObjectChoiceField("operator:", options);

        num1 = new EditField("num1: ", "", 10, EditField.FILTER_INTEGER);

        num2 = new EditField("num2: ", "", 10, EditField.FILTER_INTEGER);

        result = new EditField("result:", "", 20, EditField.NON_FOCUSABLE);

        

        hfm.add(mySubmitButton);

        hfm.add(myResetButton);

        

        add(num1);

        add(ocf);

        add(num2);

        add(new SeparatorField());

        add(result);

        add(hfm);

        

        CountListener countListener = new CountListener();

        ResetListener resetListener = new ResetListener();

        mySubmitButton.setChangeListener(countListener);

        myResetButton.setChangeListener(resetListener);



    }

    

    public void compute()

    {

        int n1 = 0;

        int n2 = 0;

        int sum = 0;

        

        String s1 = num1.getText();

        String s2 = num2.getText();

        if(!s1.equals(""))  n1 = Integer.parseInt(s1);

        else Status.show("num1 can't be empty value!");

        if(!s2.equals(""))  n2 = Integer.parseInt(s2);

        else Status.show("num2 can't be empty value!");

        

        int flag = ocf.getSelectedIndex();

        switch(flag)

        {

            case 0:

            sum = n1 + n2;

            break;

            case 1:

            sum = n1 - n2;

            break;

            case 2:

            sum = n1 * n2;

            break;

            case 3:

            if(n2 == 0)

            {

                Dialog.alert("num2 can't be 0 !");

                num2.setFocus();

                return;

            }

            sum = n1 / n2;

            break;

        }

        

        result.setText(sum + "");

    }

    

    public void reset()

    {

        num1.setText("");

        num2.setText("");

        result.setText("");

        num1.setFocus();

    }

    

    /**

     * 处理计算事件

     */

    private class CountListener implements FieldChangeListener 

    {

        public void fieldChanged(Field field, int context) 

        {

            if (context != FieldChangeListener.PROGRAMMATIC) 

            {

                compute();

            }

        }

    }

    

    /**

     * 处理重置事件

     */

    private class ResetListener implements FieldChangeListener 

    {

        public void fieldChanged(Field field, int context) 

        {

            if (context != FieldChangeListener.PROGRAMMATIC) 

            {

                reset();

            }

        }

    }





    public boolean onClose()

    {

        int response = Dialog.ask(Dialog.D_YES_NO);



        if (Dialog.YES == response)

        {

            Status.show("Good Bye!");

            System.exit(0);

        }else if (Dialog.NO == response)

        {

            return false;

        }

        return true;

    }   

}

 

保存代码后,选择菜单项Build -> Build All,没有异常的话,点击F5,打开模拟器,选择模拟器最下方的Applications菜单,查找名为test的程序,如下图所示。

程序运行时的界面如下图所示。

程序退出时的提示信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值