J2ME的环境配置好了,现在就开始写我们的第一个J2ME的手机程序吧!
先做一个比较简单的手机计算器好了。。
按照前面说的方法建立一个工程后,将代码补充到生成的框架里面就可以了。
TestMidlet.java代码:
package testmidlet;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class TestMidlet extends MIDlet {
static TestMidlet instance;
TestScreen displayable = new TestScreen();
public TestMidlet() {
instance = this;
}
public void startApp() {
Display.getDisplay(this).setCurrent(displayable);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}
TestScreen.java代码:
package testmidlet;
import javax.microedition.lcdui.*;
public class TestScreen extends Form implements CommandListener {
private TextField intA = new TextField("请输入数字a","0",10,TextField.DECIMAL);
private TextField intB = new TextField("请输入数字b","0",10,TextField.DECIMAL);
private TextField result = new TextField("运算结果:","0",10,TextField.ANY);
private ChoiceGroup opt = new ChoiceGroup("运算:",ChoiceGroup.EXCLUSIVE);
String[] op = {"+","-","*","/"};
public TestScreen() {
super("计算器");
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
opt.append(op[0],null);
opt.append(op[1],null);
opt.append(op[2],null);
opt.append(op[3],null);
append(intA);
append(intB);
append(opt);
append(result);
setCommandListener(this);
addCommand(new Command("退出", Command.EXIT, 1));
addCommand(new Command("计算",Command.OK,2));
}
private void performAddAction(){
int a,b,r = 0;
a = Integer.parseInt(intA.getString());
b = Integer.parseInt(intB.getString());
if(op[opt.getSelectedIndex()].equals("+")){
r = a + b;
}
if(op[opt.getSelectedIndex()].equals("-")){
r = a - b;
}
if(op[opt.getSelectedIndex()].equals("*")){
r = a * b;
}
if(op[opt.getSelectedIndex()].equals("/")){
if(b == 0){
result.setString("除数不能为0!");
return;
}
r = a / b;
}
result.setString(Integer.toString(r));
}
public void commandAction(Command command, Displayable displayable) {
if (command.getCommandType() == Command.EXIT) {
TestMidlet.quitApp();
}
if(command.getCommandType() == Command.OK){
performAddAction();
}
}
}
这个程序比较简单,类TestScreen继承了Form类,所以可以添加各种Item到屏幕里,例如文本框(TextField)、单选按钮(ChoiceGroup)等等。TestScreen实现了CommandListener 接口,所以可以响应命令按键事件,当然也可以单独建一个类继承CommandListener,不过似乎没有必要,在J2ME中,因为资源有限,因此要节省资源,多一个Class对生成的jar大小和运行效率都会有影响,因此虽然面向对象和各种设计模式对设计十分有利但是相对来说也牺牲了程序的运行速度。
private TextField intA = new TextField("请输入数字a","0",10,TextField.DECIMAL);
private TextField intB = new TextField("请输入数字b","0",10,TextField.DECIMAL);
private TextField result = new TextField("运算结果:","0",10,TextField.ANY);
private ChoiceGroup opt = new ChoiceGroup("运算:",ChoiceGroup.EXCLUSIVE);
String[] op = {"+","-","*","/"};
以上代码创建了三个文本输入框和一个单选按钮组,还有一个字符串的数组来保存计算的各种操作。
opt.append(op[0],null);
opt.append(op[1],null);
opt.append(op[2],null);
opt.append(op[3],null);
append(intA);
append(intB);
append(opt);
append(result);
setCommandListener(this);
addCommand(new Command("退出", Command.EXIT, 1));
addCommand(new Command("计算",Command.OK,2));
以上代码将三个文本框和单选按钮组加入到屏幕(也就是Form)中,并且设置响应命令按键的类是自己(this),然后加入了两个命令按钮,分别放在EXIT和OK的位置。一般来说,EXIT是左边的按钮,OK是右边的按钮。
private void performAddAction(){
int a,b,r = 0;
a = Integer.parseInt(intA.getString());
b = Integer.parseInt(intB.getString());
if(op[opt.getSelectedIndex()].equals("+")){
r = a + b;
}
if(op[opt.getSelectedIndex()].equals("-")){
r = a - b;
}
if(op[opt.getSelectedIndex()].equals("*")){
r = a * b;
}
if(op[opt.getSelectedIndex()].equals("/")){
if(b == 0){
result.setString("除数不能为0!");
return;
}
r = a / b;
}
result.setString(Integer.toString(r));
}
上面的函数是具体的计算过程。。。
if(command.getCommandType() == Command.OK){
performAddAction();
}
如果按的是OK的按钮,则执行计算。
OK,这个简单的小程序就完成啦!当然这只是一个最基本的程序,但J2ME的编程方式就是这个样子的。以下是程序运行界面:
分享到:
相关推荐
J2ME手机编程基础 J2ME手机编程基础 J2ME手机编程基础
主要是J2ME手机编程中的先进技术,如无线通信,游戏开发,电子地图浏览.播放器, 持久化应用,移动商务应用,XML模型应用
J2ME手机游戏编程入门,源码
《J2me手机游戏编程入门》书带源码帮子你学习J2ME手机游戏编程
J2ME蓝牙编程J2ME蓝牙编程J2ME蓝牙编程J2ME蓝牙编程J2ME蓝牙编程J2ME蓝牙编程
J2ME手机编程初级练
j2me手机编程必看教程.avij2me手机编程必看教程.avi
《J2ME游戏编程》书中的源代码《J2ME游戏编程》书中的源代码《J2ME游戏编程》书中的源代码《J2ME游戏编程》书中的源代码
J2ME手机游戏编程源代码,本人用Eclipse试过,全部可编译.是学习手机编程不可多得的资料,潜心分析源码比看教程效果好好得多,真正的程序员都是这么过来的!!!
基于Eclipse的J2ME手机编程源代码 用于初学者学习参考
J2ME数据库编程J2ME数据库编程
《J2ME手机游戏编程入门》全书实例源码,学习Java 手机游戏编程的入门书籍,其中附带了大量的J2me游戏源码实例,通过这些实例源码你将对Java手机游戏编程的基础技巧有一定的掌握,游戏的种类也比较多,而且很多都是...
j2me 手机短信编程(sms),经典 适合编程各个阶段的人学习,一定很有帮助
J2ME 游戏 编程
J2ME编程基础 配置 MyEclipse 中进行J2ME开发 J2ME 数据库开发 WAP 基础开发
爱好手机编程的朋友们,这里有你们想要的东西哟
j2me 精通J2ME无线编程,关于j2me 移动开发的书
J2ME手机游戏编程入门.iso J2ME手机游戏编程入门.iso