在现代技术中,几乎每个人都拥有移动设备。有些人甚至比使用个人电脑更频繁地使用这些设备,并且他们总是需要新的功能和功能。这些功能和功能是通过移动应用程序提供的,所以决定写一系列关于构建移动应用程序的文章。
J2ME应用程序简单地说就是具有有限功能的Java应用程序,它们被设计为在移动设备上运行。这些设备的Java运行时环境是通过使用移动信息设备配置文件(MIDP)和连接有限设备配置(CLDC)来提供的。MIDP和CLDC简单地提供了移动应用程序所需的核心应用程序功能。要编写J2ME应用程序,需要Java平台微型版SDK和一个IDE,可以是Netbeans或Eclipse。
所有J2ME应用程序都必须有一个主类,该类应该从称为MIDlet的特殊类派生。它就像应用程序的入口点,管理应用程序的生命周期。MIDlet可以处于三种状态之一:active、paused和destroyed。当应用程序管理器调用pauseApp()方法时,MIDlet被置于paused状态,当它调用startApp()方法时,MIDlet被置于active状态。destroyed状态是在调用MIDlet的destroyApp()方法或MIDlet本身调用notifyDestroyed()方法时进入的。
MIDlet类位于javax.microedition.midlet包中,所以首先要做的是导入这个包,以及包含J2ME UI组件的javax.microedition.lcdui包。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
接下来,创建一个从MIDlet类派生的类,并实现三个抽象方法:startApp()、pauseApp()和destroyApp()。
public class HelloMIDlet extends MIDlet {
public HelloMIDlet() {
}
protected void startApp() {
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
}
J2ME应用程序可以在后台运行或与用户交互。交互式应用程序需要通过获取Display类的实例来访问移动显示。Display对象用于显示所需的用户界面,该界面应该从Displayable类派生,本文中将使用Form类的实例。Form是Displayable类的派生类,它有一个标题,可以使用其他UI组件向其中添加内容。
接下来的步骤是定义Display和Form类的两个数据成员。
public class HelloMIDlet extends MIDlet {
private Display display;
private Form helloFrm;
...
}
在MIDlet类的构造函数中,通过调用构造函数并传递表单标题来创建Form类的实例。
public HelloMIDlet() {
helloFrm = new Form("Hello World");
}
获取Display类的实例并显示表单。要获取Display类的实例,调用Display类的静态方法getDisplay()并传递一个对MIDlet对象的引用。接下来,使用Display对象的setCurrent()方法来显示Form。
protected void startApp() {
display = Display.getDisplay(this);
display.setCurrent(helloFrm);
}
本文描述了如何创建一个J2MEHello World移动应用程序。所有J2ME应用程序所需的第一步是创建MIDlet类,这是应用程序中的主要类。然后可以使用Form类的实例作为应用程序中的主要UI,在Display类的对象中显示它。
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloMIDlet extends MIDlet {
private Display display;
private Form helloFrm;
public HelloMIDlet() {
helloFrm = new Form("Hello World");
}
protected void startApp() {
display = Display.getDisplay(this);
display.setCurrent(helloFrm);
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
}