刚学j2me 望高手解释下代码

问题描述

大家好哦,我是个新手,下面是个计算器的代码,可是我看不懂,希望谁能帮我逐行解释下呢,用的是什么方法怎么调用个函数法,越具体越好哦。本人万分感谢,有谁愿意收做小徒弟更好呵呵代码一:packagetestmidlet;importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;publicclassTestMidletextendsMIDlet{staticTestMidletinstance;TestScreendisplayable=newTestScreen();publicTestMidlet(){instance=this;}publicvoidstartApp(){Display.getDisplay(this).setCurrent(displayable);}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}publicstaticvoidquitApp(){instance.destroyApp(true);instance.notifyDestroyed();instance=null;}}代码二:packagetestmidlet;importjavax.microedition.lcdui.*;publicclassTestScreenextendsFormimplementsCommandListener{privateTextFieldintA=newTextField("请输入数字a","0",10,TextField.DECIMAL);privateTextFieldintB=newTextField("请输入数字b","0",10,TextField.DECIMAL);privateTextFieldresult=newTextField("运算结果:","0",10,TextField.ANY);privateChoiceGroupopt=newChoiceGroup("运算:",ChoiceGroup.EXCLUSIVE);String[]op={"+","-","*","/"};publicTestScreen(){super("计算器");try{jbInit();}catch(Exceptione){e.printStackTrace();}}privatevoidjbInit()throwsException{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(newCommand("退出",Command.EXIT,1));addCommand(newCommand("计算",Command.OK,2));}privatevoidperformAddAction(){inta,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));}publicvoidcommandAction(Commandcommd,Displayabledisplayable){if(commd.getCommandType()==Command.EXIT){TestMidlet.quitApp();}if(commd.getCommandType()==Command.OK){performAddAction();}}}

解决方案

解决方案二:
importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;publicclassTestMIDletextendsMIDlet{staticTestMIDletinstance;//MIDlet的实例TestScreendisplayable=newTestScreen();//程度的主界面publicTestMIDlet(){instance=this;}/***程序的入口*/publicvoidstartApp(){Display.getDisplay(this).setCurrent(displayable);//将主界面显示出来}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}/***退出程序*/publicstaticvoidquitApp(){instance.destroyApp(true);instance.notifyDestroyed();instance=null;}}

importjavax.microedition.lcdui.*;publicclassTestScreenextendsFormimplementsCommandListener{privateTextFieldintA=newTextField("请输入数字a","0",10,TextField.DECIMAL);//用于输入第一个数字的输入框privateTextFieldintB=newTextField("请输入数字b","0",10,TextField.DECIMAL);//用于输入第而个数字的输入框privateTextFieldresult=newTextField("运算结果:","0",10,TextField.ANY);//用于存放结果的输入框privateChoiceGroupopt=newChoiceGroup("运算:",ChoiceGroup.EXCLUSIVE);//用于选择运算符的单选框String[]op={"+","-","*","/"};//支持的操作符/***构造函数*/publicTestScreen(){super("计算器");//Form的标题叫计算器try{jbInit();}catch(Exceptione){e.printStackTrace();}}/**初始化界面*/privatevoidjbInit()throwsException{//将运算符加入都单选框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(newCommand("退出",Command.EXIT,1));addCommand(newCommand("计算",Command.OK,2));}/**计算结果*/privatevoidperformAddAction(){inta,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){//判断除数不能为0result.setString("除数不能为0!");return;}r=a/b;}//将结果加入到结果输入框result.setString(Integer.toString(r));}/***左右按钮响应*/publicvoidcommandAction(Commandcommd,Displayabledisplayable){if(commd.getCommandType()==Command.EXIT){//按了退出按钮TestMIDlet.quitApp();//退出程序}if(commd.getCommandType()==Command.OK){//按了计算按钮performAddAction();//计算结果}}}

解决方案三:
学习
解决方案四:
packagetestmidlet;importjavax.microedition.midlet.*;importjavax.microedition.lcdui.*;//继承MIDletJ2ME的入口类publicclassTestMidletextendsMIDlet{staticTestMidletinstance;TestScreendisplayable=newTestScreen();//实例化TestScreen类publicTestMidlet(){instance=this;}//入口方法publicvoidstartApp(){Display.getDisplay(this).setCurrent(displayable);//显示TestScreen(Form)}publicvoidpauseApp(){}publicvoiddestroyApp(booleanunconditional){}//退出publicstaticvoidquitApp(){instance.destroyApp(true);instance.notifyDestroyed();instance=null;}}代码二:packagetestmidlet;importjavax.microedition.lcdui.*;//继承FormpublicclassTestScreenextendsFormimplementsCommandListener{privateTextFieldintA=newTextField("请输入数字a","0",10,TextField.DECIMAL);//输入框A默认0,限制长度为10,数字(小数)privateTextFieldintB=newTextField("请输入数字b","0",10,TextField.DECIMAL);//输入框B默认0,限制长度为10,数字(小数)privateTextFieldresult=newTextField("运算结果:","0",10,TextField.ANY);//结果输入框默认0,限制长度为10,任意字符privateChoiceGroupopt=newChoiceGroup("运算:",ChoiceGroup.EXCLUSIVE);//选项组件单选String[]op={"+","-","*","/"};//各运算符号//构造publicTestScreen(){super("计算器");try{jbInit();}catch(Exceptione){e.printStackTrace();}}//初始化privatevoidjbInit()throwsException{//添加运算符号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(newCommand("退出",Command.EXIT,1));addCommand(newCommand("计算",Command.OK,2));}//计算privatevoidperformAddAction(){inta,b,r=0;a=Integer.parseInt(intA.getString());//得到输入框A里的数字b=Integer.parseInt(intB.getString());//得到输入框B里的数字//根据当前用户所选的运算符做相应计算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));//设置结果输入框显示计算后的结果}//命令事件响应publicvoidcommandAction(Commandcommd,Displayabledisplayable){if(commd.getCommandType()==Command.EXIT){//退出TestMidlet.quitApp();}if(commd.getCommandType()==Command.OK){//计算performAddAction();}}}

解决方案五:
哈哈,有人快了一步。
解决方案六:
学习一下
解决方案七:
学习
解决方案八:
推荐<<J2ME移动设备程序设计>>
解决方案九:
下点J2ME的视频来看看吧
解决方案十:
下点免费的电子书看看啊~CSDN上就好多
解决方案十一:
跟着学习
解决方案十二:
貌似这个跟applet类似
解决方案十三:
staticTestMidletinstance;//为什么要设为static?这样有什么好处呢?instance=this;//为什么要额外建立一个instance实例呢?this不是就代表TestMidlet吗?为什么要多此一举,这样做有什么好处吗?我觉得这段代码的结构很好,至少看起来很舒服,哪位高手能谈谈这段代码有什么优缺点吗?有哪些地方值得我们这些新手学习的地方?
解决方案十四:
还有append(intA);append(intB);append(opt);前面为什么不用加this.引用呢?
解决方案十五:
引用12楼softice_的回复:

staticTestMidletinstance;//为什么要设为static?这样有什么好处呢?instance=this;//为什么要额外建立一个instance实例呢?this不是就代表TestMidlet吗?为什么要多此一举,这样做有什么好处吗?我觉得这段代码的结构很好,至少看起来很舒服,哪位高手能谈谈这段代码有什么优缺点吗?有哪些地方值得我们这些新手学习的地方?

要调用Midlet的一些方法时,有以下两种处理方法:1.将自身即this作为参数传给其他类2.建一个自身的静态实例
解决方案:
引用13楼softice_的回复:

还有append(intA);append(intB);append(opt);前面为什么不用加this.引用呢?

加不加this都一样。除了某个方法的参数名或局部变量名与类的成员变量名相同这时候,如果不加this表示的是前者,加了this表示后者最常见的如:Stringtitle;//标题//假设这是一个构造方法publicTest(Stringtitle){this.title=title;}
解决方案:
引用15楼kf156的回复:

加不加this都一样。除了某个方法的参数名或局部变量名与类的成员变量名相同这时候,如果不加this表示的是前者,加了this表示后者最常见的如:Stringtitle;//标题//假设这是一个构造方法publicTest(Stringtitle){this.title=title;}

我的意思是append()方法是个对象方法,前面为什么不绑定一个对象
解决方案:
j2me学习,有JAVA基础跟做一个项目最快.
解决方案:
引用16楼softice_的回复:

引用15楼kf156的回复:加不加this都一样。除了某个方法的参数名或局部变量名与类的成员变量名相同这时候,如果不加this表示的是前者,加了this表示后者最常见的如:Stringtitle;//标题//假设这是一个构造方法publicTest(Stringtitle){this.title=title;}我的意思是append()方法是个对象方法,前面为什么不绑定一个对象

没加就是默认的罗
解决方案:
学习一下!!!
解决方案:
明白了,又学到了,谢谢了,诸位兄弟!
解决方案:
很好,被其他兄弟抢先了:)
解决方案:
郭克华的视频教程看看吧,应该很有帮助的。网上很容易搜的到的。我也在看,呵呵

时间: 2024-11-03 09:22:31

刚学j2me 望高手解释下代码的相关文章

随机游走-C++使用 armadillo fuction——谁来解释下代码的含义?!!

问题描述 C++使用 armadillo fuction--谁来解释下代码的含义?!! 这是一个随机游走的算法代码,求相似度矩阵的 但是代码米有看懂,谁能一句一句的解释下啊?--谢谢咯! 附: arma::colvec degree = arma::sum(m_matWeight, 1); arma::mat matD = arma::diagmat(degree); m_matP = arma::solve(matD, m_matWeight); m_matB += m_matP; 重点是su

报错-我刚学Qt,能帮我改改代码吗?不知道错哪了

问题描述 我刚学Qt,能帮我改改代码吗?不知道错哪了 解决方案 第一个源代码缺少 include "mydilaog.h"

pb jmail 死机-PB 使用JMAIL, timer事件 循环发送邮件 死机 哪位高手看下代码有啥问题?

问题描述 PB 使用JMAIL, timer事件 循环发送邮件 死机 哪位高手看下代码有啥问题? 开始使用Mymail.dll ,发送邮件(在timer事件写的发送,即发现有附件即触发发送函数) 一切正常,程序后台运行几周都没问题,后来看见网上说jmail.dll 比mymail.dll好用,就讲程序改用调jmail.dll后,自动执行2天 基本程序就死在那了,资源管理器发下,程序内存占用增长了不少,不知道什么原因 ,哪位高手给指点一下,谢谢 1.定义窗口级别 实例 OLE对象oleobject

opengl-麻烦解释下代码的含义

问题描述 麻烦解释下代码的含义 #include GLfloat xRotated, yRotated, zRotated; void Display(void) { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0,0.0,-4.0); glRotatef(xRotated,1.0,0.0,0.0); glRotatef(yRotated,0.0,1.0,0.0); glRotatef(zRotated,0.0,0

新手刚学C# 需要高手帮忙分析以下要求怎么实现 提供下思路

问题描述 5.1服务端接收并解析串口数据5.2服务端将解析的串口数据转成Json,序列化后发给客户端5.3客户端接收服务端数据,反序列化Json5.4客户端解析反序列化后的Json,做出相应操作(必须包含地图控件上的操作,例如:地图上某张图片的位置变换)有做过相关项目的源码更好谢谢了!!! 解决方案 解决方案二:使用socket通信:在找个Json序列化类.解决方案三:其实两个问题1.通信,socket2.json操作,Newtonsoft.Json.dll解决方案四:参考文章:http://b

请高手解释下这个问题,谢谢

问题描述 一个package里面的类在eclipse 里面运行是可以的,但是我如果在cmd里面运行的话就会报java.lang.NoClassDefFoundError错,还有就是我如果把package去掉的话,类里面调用Class.froName 放在D盘或者e盘下面可以直接运行,但是放在文件夹下面就不行,如果有package声明会报java.lang.NoClassDefFoundError错,我如果把package去掉的话,class.forname("该类名")会报找不到这个类

大神帮忙解释下代码,关于求一个数的绝对值的趣味解法

问题描述 packageNO4;publicclassTest24{staticintabsoluteValue(intnum){intmax=0;for(inti=0;true;i++){max=i>max?i:max;if(i==num){if(i>=max)returni;//elsereturn-i;}}}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubSystem.out.println(absolut

c c++编程-有没有大神看下 ,小弟刚学c++这个代码运行后输出str不是输出100为什么

问题描述 有没有大神看下 ,小弟刚学c++这个代码运行后输出str不是输出100为什么 #include #include using namespace std; int main(void) { char *str = new char[100]; strcpy(str,"hello imooc"); cout << "*str"; delete[] str; system("pause"); return 0; } 解决方案 如

linux网络编程-linux方面遇到的一个难题,希望大哥大姐帮忙解决下,小弟是菜鸟,刚学linux编程

问题描述 linux方面遇到的一个难题,希望大哥大姐帮忙解决下,小弟是菜鸟,刚学linux编程 /proc/进程号/statm包含了进程使用内存的信息,如[root@cs 9519]# more statm 18095 2094 1468 7 0 605 0 [root@cs 9519]# ps 9519PID TTY STAT TIME COMMAND9519 ? S 0:00 /usr/libexec/notification-daemonmore statm 18095 2094 1468