手机J2ME程序开发(一)

   用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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值