新建第一个J2me程序----低级UI绘制的Hello MIDlet
搭配好环境。在工作区域。
new -- project -- 选择j2me下面的J2me MIDlet Suite -- 选中J2me MIDlet Suite然后next -- 填写project name 然后next -- finish。
第一个J2me程序新建完毕。
在src中new -- clss 填写名字。finish。
以下是我自己写的第一个demo。还有自己写的注释。
1。canvas类
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
public class MyCanvas extends Canvas{
protected void paint(Graphics arg0) {
// TODO Auto-generated method stub
//绘制屏幕颜色
arg0.setColor(0, 0, 255);
/*
* 绘制屏幕的起点坐标,还有Graphics所自有的坐标
*/
arg0.fillRect(0, 0, getWidth(),getHeight() );
/*
* 绘制字体颜色。与绘制屏幕颜色有先后之分
*/
arg0.setColor(255, 0, 255);
arg0.drawString("Hello MIDlet Canvas", 10, 10, Graphics.TOP|Graphics.LEFT);
}
}
2。Hello类。也是继承了入口类的显示的部分
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/*
* j2me程序的运行必须继承j2me的入口类MIDlet。类似android中继承activity
*/
public class Hello extends MIDlet {
private Display display;
/*
* 在j2me中,MIDlet生命周期三个,相对android中的7个少。startApp,PauseApp,destroyApp。
* 分别表示活动状态,暂停状态,销毁状态
*/
//程序启动的时候会调用该方法初始化用户需要的资源
protected void startApp() throws MIDletStateChangeException {
/*
* J2me中所有可显示的组件都是直接或间接的继承了Displayable,
* 直接的是Canvas和Screen。不同的继承导致了低级 UI和高级UI的区别。
* J2me中现成的UI组件都是直接或者间接继承了Screen。只要调用
Display.getDisplay(MIDLet instan).setCurrrent(Displayable disp),
切换界面的时候也可以使用该接口
*/
display = Display.getDisplay(Hello.this);
MyCanvas mc = new MyCanvas();
display.setCurrent(mc);
}
//当用户来电话的时候会调用此接口,用户可以调用此接口停止线程的操作
protected void pauseApp() {
}
//程序推出的时候调用,用户通过调用该接口处理掉处于活动状态的线程
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
}
令我意外的是这个不需要配置xml文件,而且即使是高级UI实现的j2me也不用配置。以后继续研究。现在正在看ANT解析。貌似有难度的说。
下面说运行怎样运行:
右键工程--run as--run configurations--选择wireless Toolkit下面的New_coonfigguation -- 在Midlet标签选项卡上面选择Browse导入本工程名 ---
在Executable的midlet选项中点击Search找出程序的入口类。--- Run。