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的程序,如下图所示。
程序运行时的界面如下图所示。
程序退出时的提示信息: