J2ME 学习积累(2)

简介: 先收集了一个网上广为流传的J2ME入门范列:但做为入门,搞清楚它每行的意义还是有必要的:package fancy.test; //这行代码声明当前类所在的包。

先收集了一个网上广为流传的J2ME入门范列:
但做为入门,搞清楚它每行的意义还是有必要的:

package fancy.test; //这行代码声明当前类所在的包。这是有必要的。而且这个包名必须和src文件夹中的目录                               //结构对应。

/*
这两行代码导入必要的Java包.
javax.microedition.lcdui:用户界面包,主要用于构造程序的用户界面。
Command、form都是这个包的类。

javax.microedition.midlet:这个包是MIDlet程序的声明周期包,主要定义了MIDlet类,MIDlet
类是一个抽象类,里面声明了startApp()、destroyApp()、pauseApp()等抽象方法。

*/

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/*
J2ME程序一般应该继承MIDlet,实现CommandListener。就如Applet必须继承Applet,可能实
现Runnable接口一样。
*/

public class HelloWorld extends MIDlet implements CommandListener
{
/*
定义两个私有对象,Display代表屏幕,显示区域。form是容器的一种。在J2ME程序中,不但
有容器的概念,还有画布(Canvas)的概念。这个程序在form容器中显示文本。
*/

private Display display;
private form props;
}

/*
声明一个Command对象。J2ME的事件处理机制和J2SE的事件处理机制不太一样。在J2ME程序
中,必须预先定义一些Command对象,注册到程序中。当设备发生了某个事件,会产生相应的Co
mmand对象,并把它传递给一个事件处理函数----commandAction(),由它对所产生的事件做统
筹处理。
*/

private Command exitCommand = new Command("Exit", Command.EXIT, 1);

/*
这个是构造函数,函数内部,调用Display对象的静态方法---getDisplay(),获取屏幕对象,
实例化display变量。这个调用是必要的。你可以在构造函数中做这个工作,也可以在startApp()
方法中做这个工作。推荐在构造函数中完成
*/

public HelloWorld()
{
display = Display.getDisplay(this);
}

/*
MIDlet程序的运行流程
构造函数---->startApp()------>侦听事件,接受命令------->commandAction()方法----
--->调用别的方法----------->如果是exit命令--------->pauseApp()--------->destroyApp()方法。
实际上MIDlet程序的运行流程和Applet程序的运行流程差不多。
*/


/*
这是startApp()方法。这个方法是父类的抽象方法,在子类中必须予以覆盖。
首先实例化form对象----------props,form的构造函数的参数(Hello World)就是屏幕的标题。
form对象是一容器,在里面可以包含别的东西,
props.append(“…..”);的作用就是在这个容器中存放一个字符串。这个字符串会在屏幕中显示出来。
接下来的三行代码分别做这样的工作:
将Exit命令注册到form对象(props)中,这样form对象(props)可以对该命令作出响应。
设置form对象(props)的命令监听者。
将form对象设置为屏幕显示的对象。
你可以试着注释掉这三行代码,再编译运行这个程序,看看会发生什么情况。
*/
public void startApp()
{
props = new form("Hello World");
props.append("Hello World!/n");

props.addCommand(exitCommand);
props.setCommandListener(this);
display.setCurrent(props);
}

/*
这个方法是事件处理的中枢,它接受各种命令,并对其进行分析,再分别调用合适的处理方法。
在这个例子中,当接收到Exit命令以后,马上销毁程序,退出。
*/

public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
destroyApp(false);
notifyDestroyed();
}
}

/*
destroyApp()方法的作用是退出程序并销毁程序对象。pauseApp()方法的作用是暂停程序
,并销毁容器对象或者是画布对象。手机屏幕将会是一片空白。
*/

public void destroyApp(boolean unconditional)
{
}

public void pauseApp()
{
display.setCurrent(null);
props = null;
}

}

好了,后面给点补充内容,就是:
javax.microedition.rms:这个包实现了对手机数据的存取功能.
javax.microedition.io:网络IO包。有HttpConnection接口和Connection接口、Datagram接口.

目录
相关文章
|
Java 开发工具 IDE
J2ME 学习积累(1)
概念: J2ME:J2ME是Java 2 Micro Edition的简称,是SUN推出的针对嵌入式消费类电子产品的开发平台,例如手机、PDA和电视机顶盒等。
826 0
|
SQL Web App开发 Java
知识积累
谢绝转载。
2355 0
|
Java 数据库连接 数据库
转载:你积累了什么?
转自:http://hi.baidu.com/linkzq/item/36adc0ab7ca7e4a929ce9dfd   开始用JBE看class文件时,发现new指令后都跟着dup操作,翻了《深入Java虚拟机指令》也没什么结果,Google后转到“诗剑书生”的CSDN专栏,这个问题得到了答案。
1138 0
|
C++ 机器学习/深度学习 算法
积累(一)
积累(一) C++的多态——编译时多态与运行时多态。前者指重载(同名函数对应不同的函数体定义);后者指虚函数(动态绑定)。 struct的成员默认是public,class的成员默认是private。 对于派生类的构造函数,在定义对象时构造函数的执行顺序为? 答:1.基类的构造函数 2.成员对象所在类的构造函数  3.派生类自己的构造函数。 定义一个函数指针,指向的函数有两个in
1159 0
|
算法
积累(二)
阿里2014实习生招聘 问:某国家非常重男轻女,若一户人家生了一个女孩,便要继续生,直到得到男孩为止。假设生男生女概率相等,请问平均每户人家有(1)个女孩。 答:此题即高数中的级数。         引申:   int f(int x){ int s=0; while(x--) s+=f(x); return max(x,1); } //若调用f(35)
1719 0
积累——非IT(一)
在12小时之内时针分针有几次重合? 答:0:00:00 一次,[1:00:00,2:00:00)一次,[2:00:00,3:00:00)一次,...,[10:00:00,11:00:00)一次。共11次。在一天24小时之内时针分针秒针有几次重合? 答:0:00:00  12:00:00 这两次 想算的话,时针速度30/3600度每秒,分针1/10度,秒针6度。先计算时针与分针重合的时
943 0
|
安全 C++ Windows
积累(四)
Windows: sendmessage、postmessage区别与联系 鼠标双击依次对应哪几个事件 线程安全 c++: union map\vector 删除元素后iterator的失效问题 int*a[4] int(*a)[4] 辨析 参见 http://blog.csdn.net/chuchus/article/details/39203441 写代码:不用递归方法
934 0
|
应用服务中间件 nginx Python
|
算法
算法题积累
http://blog.csdn.net/omenglishuixiang1234/article/details/51234070#二hashing
757 0