正文

J2ME -- 实现短信发送界面2009-10-30 00:44:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/shao/49949.html

分享到:

 

package Prj7_1;

import java.io.IOException;

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.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class MessageMIDlet extends MIDlet implements CommandListener, ItemStateListener{
 
 private Form welcomeForm = new Form("欢迎使用...");
 private Display dis;
 /**************** 欢迎界面  ********************/
 private Command cmdExit = new Command("退出程序",Command.BACK,1);
 private Command cmdWriteMsg = new Command("写短信",Command.SCREEN,1);
 ImageItem welcoemItem;  
 /**************** 短信编辑界面  ********************/
 private Form frmMsg = new Form("请您输入短信");
 private TextField tfMsg = new TextField("请您输入短信内容","",300,TextField.ANY);
 private Command cmdMsgBack = new Command("返回上一页",Command.BACK,1);
 private Command cmdMsgDel = new Command("清除文本",Command.BACK,1);
 private Command cmdSend = new Command("发送",Command.SCREEN,1); 
 /**************** 发送界面  ********************/
 private TextBox tbPhone =  new TextBox("输入对方号码","",15,TextField.NUMERIC);
 private Command cmdPhoneBack = new Command("返回",Command.BACK,1);
 private Command cmdOK = new Command("确定",Command.SCREEN,1);
 
 public MessageMIDlet() {
  /****************  欢迎界面初始化  ********************/
  Image welcomeImg = null;
  try {
   welcomeImg = Image.createImage("/Welcome.png");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  welcoemItem = new ImageItem("Welcome!",welcomeImg, Item.LAYOUT_CENTER, "无法载入图片");
  
  /**************** 短信编辑界面初始化  ********************/
  frmMsg.append(tfMsg);
  frmMsg.addCommand(cmdMsgBack);
  frmMsg.addCommand(cmdSend); 
  /****************  发送界面初始化  ********************/
  tbPhone.addCommand(cmdPhoneBack);
  tbPhone.addCommand(cmdOK); 
  /****************  事件绑定代码  ********************/
  welcomeForm.setCommandListener(this);
  frmMsg.setCommandListener(this);
  tbPhone.setCommandListener(this);
  frmMsg.setItemStateListener(this);//Item状态事件
 }

 protected void startApp() throws MIDletStateChangeException {
  dis = Display.getDisplay(this);
  dis.setCurrent(welcomeForm);
  /****************  欢迎界面初始化  ********************/
  welcomeForm.addCommand(cmdWriteMsg);
  welcomeForm.addCommand(cmdExit);
  welcomeForm.append(welcoemItem);
 }
 
 public void commandAction(Command c,Displayable d){
  if(c == cmdExit){
   this.notifyDestroyed();
  }
  else if(c == cmdWriteMsg){
   dis.setCurrent(frmMsg);
  }
  else if(c == cmdMsgBack){
   dis.setCurrent(welcomeForm);
  }
  else if(c == cmdSend){
   dis.setCurrent(tbPhone);
  }
  else if(c == cmdMsgDel){
   int position = tfMsg.getCaretPosition();
   tfMsg.delete(position-1, 1);
  }
  else if(c == cmdPhoneBack){
   dis.setCurrent(frmMsg);
  }
  else if(c == cmdOK){  //在cmdPhoneBack命令未添加处理代码时,要放在else if(c == cmdPhoneBack){后面
   System.out.println("短信发送成功");
   System.out.println("短信发送内容:"+tfMsg.getString());
   System.out.println("短信发送目的地: "+tbPhone.getString());
  }
 }
 
 public void itemStateChanged(Item item)  {
  if(item == tfMsg){
   System.out.println(tfMsg.size());//测试一下输入的短信字符的长度
   if(tfMsg.size() ==  0){
    frmMsg.removeCommand(cmdMsgDel);
    frmMsg.addCommand(cmdMsgBack);
   }
   else{
    frmMsg.removeCommand(cmdMsgBack);
    frmMsg.addCommand(cmdMsgDel);
   }
  }
 }

 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

 }

 protected void pauseApp() {

 }

 

}

 

阅读(2664) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册