手机J2ME程序开发(一)
2008-03-08 19:50
225 查看
用JAVA好长时间了,从来没有想过写J2ME程序,最近买了个手机,比较便宜,相当的功能就少了些,就有了自己写几个程序的想法。
有了写J2EE程序的基础,很快就可以上手写J2ME的程序,由此我发现JAVA的跨平台能力否真不是白叫的。
写程序前先要熟悉几个相关概念,然后搭建一下开发环境,这方面网上都有详细的介绍,我在这里不过多的进行介绍了。我使用的环境是eclipse3.2及wtk2.5。
大家都知道学编程,一个helloworld的程序是很重要的,下面我把的编写的一个程序代码贴在下面,希望大家有所帮助。
package midp.wallimn.com;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.Spacer;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/** *//**
* 这是个秒表程序,以我的L6g为运行平台,是我自己编写的第一个手机程序, 很快就调试运行成功,很有成就感。 <br/>
*
* @version : V1.0<br/>
* @author : (Email: wallimn@sohu.com QQ: 54871876)<br/>
* @date : 2008-1-14 下午01:37:28<br/>
*/
public class StopWatchMIDlet extends MIDlet implements CommandListener ...{
//private TextBox tBox;// 显示
//原来使用TextBox做显示用,用户敲键盘会出现输入窗口。
private Form mainForm;
private StringItem stringItem;
private Timer m_timer;// 定时器
private Display display;
private Command EXIT_CMD = new Command("退出", Command.EXIT, 1);
private Command STOP_CMD = new Command("停止", Command.STOP, 1);
private Command START_CMD = new Command("开始", Command.STOP, 1);
class MyTimerTask extends TimerTask ...{
int s = 0;//秒
int m = 0;//分
int h = 0;//时
int ms = 0;//1/100秒
StringBuffer sb = null;
public MyTimerTask()...{
sb = new StringBuffer();
}
public void init() ...{
s = 0;
m = 0;
h = 0;
ms = 0;
}
public String getString() ...{
//StringBuffer sb = new StringBuffer();
sb.delete(0, sb.length());
if (h <= 9)
sb.append("0");
sb.append(h);
sb.append(":");
if (m <= 9)
sb.append("0");
sb.append(m);
sb.append(":");
if (s <= 9)
sb.append("0");
sb.append(s);
sb.append(".");
sb.append(ms);
return sb.toString();
}
public void run() ...{
if (ms == 9) ...{
ms = 0;
if (s == 59) ...{
s = 0;
if (m == 59) ...{
m = 0;
h++;
} else ...{
m++;
}
} else ...{
s++;
}
} else ...{
ms++;
}
stringItem.setText(getString());
}
}
public StopWatchMIDlet() ...{
display = Display.getDisplay(this);
mainForm = new Form("=秒表程序=");
Spacer spacer = new Spacer(20,mainForm.getHeight()/2-18);
mainForm.append(spacer);
stringItem = new StringItem("","00:00:00.0");
stringItem.setLayout(Item.LAYOUT_CENTER);
mainForm.append(stringItem);
mainForm.addCommand(EXIT_CMD);//添加命令显示
mainForm.addCommand(START_CMD);//添加命令显示
mainForm.setCommandListener(this);//添加事件监听
}
protected void destroyApp(boolean arg0) ...{
stringItem = null;
}
protected void pauseApp() ...{
}
protected void startApp() throws MIDletStateChangeException ...{
display.setCurrent(mainForm);
}
public void commandAction(Command c, Displayable s) ...{
if (c == EXIT_CMD) ...{
if(m_timer!=null)...{//停止计时器,释放资源
m_timer.cancel();
m_timer=null;
}
try ...{
destroyApp(false);
} catch (Exception e) ...{
}
notifyDestroyed();
}
else if (c == STOP_CMD) ...{
this.m_timer.cancel();
m_timer = null;
mainForm.removeCommand(STOP_CMD);
mainForm.addCommand(START_CMD);
}
else if(c==START_CMD)...{
m_timer = new Timer();
m_timer.schedule(new MyTimerTask(), new Date(),100);
mainForm.removeCommand(START_CMD);
mainForm.addCommand(STOP_CMD);
}
}
}
相关软件请到我的网络硬盘下载:http://wallimn.ys168.com
有了写J2EE程序的基础,很快就可以上手写J2ME的程序,由此我发现JAVA的跨平台能力否真不是白叫的。
写程序前先要熟悉几个相关概念,然后搭建一下开发环境,这方面网上都有详细的介绍,我在这里不过多的进行介绍了。我使用的环境是eclipse3.2及wtk2.5。
大家都知道学编程,一个helloworld的程序是很重要的,下面我把的编写的一个程序代码贴在下面,希望大家有所帮助。
package midp.wallimn.com;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.Spacer;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
/** *//**
* 这是个秒表程序,以我的L6g为运行平台,是我自己编写的第一个手机程序, 很快就调试运行成功,很有成就感。 <br/>
*
* @version : V1.0<br/>
* @author : (Email: wallimn@sohu.com QQ: 54871876)<br/>
* @date : 2008-1-14 下午01:37:28<br/>
*/
public class StopWatchMIDlet extends MIDlet implements CommandListener ...{
//private TextBox tBox;// 显示
//原来使用TextBox做显示用,用户敲键盘会出现输入窗口。
private Form mainForm;
private StringItem stringItem;
private Timer m_timer;// 定时器
private Display display;
private Command EXIT_CMD = new Command("退出", Command.EXIT, 1);
private Command STOP_CMD = new Command("停止", Command.STOP, 1);
private Command START_CMD = new Command("开始", Command.STOP, 1);
class MyTimerTask extends TimerTask ...{
int s = 0;//秒
int m = 0;//分
int h = 0;//时
int ms = 0;//1/100秒
StringBuffer sb = null;
public MyTimerTask()...{
sb = new StringBuffer();
}
public void init() ...{
s = 0;
m = 0;
h = 0;
ms = 0;
}
public String getString() ...{
//StringBuffer sb = new StringBuffer();
sb.delete(0, sb.length());
if (h <= 9)
sb.append("0");
sb.append(h);
sb.append(":");
if (m <= 9)
sb.append("0");
sb.append(m);
sb.append(":");
if (s <= 9)
sb.append("0");
sb.append(s);
sb.append(".");
sb.append(ms);
return sb.toString();
}
public void run() ...{
if (ms == 9) ...{
ms = 0;
if (s == 59) ...{
s = 0;
if (m == 59) ...{
m = 0;
h++;
} else ...{
m++;
}
} else ...{
s++;
}
} else ...{
ms++;
}
stringItem.setText(getString());
}
}
public StopWatchMIDlet() ...{
display = Display.getDisplay(this);
mainForm = new Form("=秒表程序=");
Spacer spacer = new Spacer(20,mainForm.getHeight()/2-18);
mainForm.append(spacer);
stringItem = new StringItem("","00:00:00.0");
stringItem.setLayout(Item.LAYOUT_CENTER);
mainForm.append(stringItem);
mainForm.addCommand(EXIT_CMD);//添加命令显示
mainForm.addCommand(START_CMD);//添加命令显示
mainForm.setCommandListener(this);//添加事件监听
}
protected void destroyApp(boolean arg0) ...{
stringItem = null;
}
protected void pauseApp() ...{
}
protected void startApp() throws MIDletStateChangeException ...{
display.setCurrent(mainForm);
}
public void commandAction(Command c, Displayable s) ...{
if (c == EXIT_CMD) ...{
if(m_timer!=null)...{//停止计时器,释放资源
m_timer.cancel();
m_timer=null;
}
try ...{
destroyApp(false);
} catch (Exception e) ...{
}
notifyDestroyed();
}
else if (c == STOP_CMD) ...{
this.m_timer.cancel();
m_timer = null;
mainForm.removeCommand(STOP_CMD);
mainForm.addCommand(START_CMD);
}
else if(c==START_CMD)...{
m_timer = new Timer();
m_timer.schedule(new MyTimerTask(), new Date(),100);
mainForm.removeCommand(START_CMD);
mainForm.addCommand(STOP_CMD);
}
}
}
相关软件请到我的网络硬盘下载:http://wallimn.ys168.com
相关文章推荐
- 请问大侠们用Moto lwt包开发的程序能否在其他支持J2me的手机上运行?
- Eclipse开发J2ME手机程序
- 我想问一下一个很简单的问题,j2me开发手机程序,驱动蓝牙.做过的进.....
- 使用NetBeans进行J2ME开发(二):把程序转移到手机上
- 在J2ME手机程序开发中使用颜色
- 手机J2ME程序开发(二)
- 在J2ME手机程序开发中使用颜色
- Eclipse开发J2ME程序 第六讲 制作图形化手机游戏
- 各种兼容手机在开发j2me-MIDlet程序时,程序员应当知道的一些问题
- 手机J2ME程序开发(三)
- 使用NetBeans进行J2ME开发[手机程序开发]
- J2ME手机程序开发中的九大注意要点
- Eclipse开发J2ME手机程序之简介 第一讲 Eclipse简介
- 在J2ME手机程序开发中使用颜色
- 使用NetBeans进行J2ME开发(二):把程序转移到手机上
- j2me手机游戏编程第一课(开发环境搭建和第一个MIDlet程序 视频)
- 用Eclipse开发J2ME手机游戏 第四讲 创建经典的HelloWorld程序
- J2ME中用MMAPI开发手机摄像头程序
- J2ME程序开发新手入门九大要点
- J2ME程序开发新手入门要领