J2ME学习札记————小白坏坏

   J2ME学习札记
ME体系架构和环境配置

1 JAVA分支:
J2SE JAVA标准版
J2EE JAVA企业版(一般运行在工作站或服务器上)
J2ME JAVA小型版(独立设备、互联移动设备、嵌入式设备)

2 J2ME体系架构

 可选包  --------针对特定的手机提供的特定的包
  描述 
  配置  --------核心库和虚拟机  CDC互联设备配置  CLDC互联受限设备
  JVM  
操作系统

3 软件安装
JDK+WTK(无线工具包)+IDE(Eclipse)
WTK目录下的内容  
 lib包含了J2ME体系构架支持的开发包
 docs包含了WTK文档(最核心的文档是MIDP文档)
       apps提供了一写系统自带的Demo  Demo的src里边有Demo的源代码
Eclipse安装
要配置Eclipse进行J2ME工作需要EclipseME插件  可以再Eclipse内安装,也可以吧EclipseME的内容导入到Eclipse/plugins目录下
WTK与EclipseME绑定 Eclipse—window—Preferences—DeviceManagment导入设备(即导入WTK的安装目录)


 
J2ME高级界面开发

11个包:

java.io  ----输入输出
java.lang  ----字符串、线程等
java.util  ----随机数、定时器、日历等
javax.microedition.io ----属于CLDC和MIDP  

javax.microedition.lcdui   普通用户界面
javax.microedition.lcdui.game  --游戏用户界面的

javax.microedition.media
javax.microedition.media.control --和多媒体有关的包

javax.microedition.midlet ---只包含一个MIDlet类

javax.microedition.pki ---数字签名
 
javax.microedition.rms ---手机数据库


创建MIDlet
所有的手机程序都要继承于MIDlet抽象类
继承于MIDlet的类有3个函数:
startApp pauseApp destroyApp
开始  暂停  退出

把文件打包之后放入手机就可以运行啦打包生成一个JAR文件和一个JAD文件
JAD文件属性说明:纯文本文件,说明具体的运行位置以及jar文件所在的位置信息。
以下是JAD文件内容:
MIDlet-1: Midlet_1,,Midlet_1         
MIDlet-Jar-Size: 925                 jar文件的大小
MIDlet-Jar-URL: proj_1.jar           jar文件位置信息
MIDlet-Name: proj_1 Midlet Suite     名字 
MIDlet-Vendor: Midlet Suite Vendor   厂商
MIDlet-Version: 1.0.0       版本
MicroEdition-Configuration: CLDC-1.1 配置信息DLCD版本

JAR文件解压缩有一个class文件  就是源程序编译后的文件

 

MIDlet只是提供了一个运行平台,上面的界面要用javax.microedition.lcdui包里得Displayable加上去
Displayable是一个抽象类他有一个Form子类可以用
Display可以获得当前MIDlet上的显示对象

 private Form frm = new Form("请选择相应的操作!");
 private Display dis;
 
 public Midlet_1() {
  //获得当前MIDlet上的显示对象
  dis = Display.getDisplay(this);
  //将frm设置为当前页面
  dis.setCurrent(frm);
 }
按钮的添加 Command
用Command定义按钮  然后用form的addCommand方法添加到form上。
 private Command comDelt = new Command("删除该号码", Command.SCREEN, 1);
 private Command comEdit = new Command("编辑该号码", Command.SCREEN, 1);
 private Command comSave = new Command("保存该号码", Command.SCREEN, 1);
 private Command comExit = new Command("退出该程序", Command.SCREEN, 1);
 private Command comBack = new Command("返回上一页", Command.BACK, 1);

  frm.addCommand(comDelt);
  frm.addCommand(comEdit);
  frm.addCommand(comSave);
  frm.addCommand(comExit);
  frm.addCommand(comBack);


整理代码如下:

//包
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class Midlet_1 extends MIDlet {
 
 //定义所需的内容
 private Form frm = new Form("请选择相应的操作!"); //定义form建立一个页面
 private Display dis;     //定义一个Display用来显示Form
 private Command comDelt = new Command("删除该号码", Command.SCREEN, 1);//定义按钮
 private Command comEdit = new Command("编辑该号码", Command.SCREEN, 1);//定义按钮
 private Command comSave = new Command("保存该号码", Command.SCREEN, 1);//定义按钮
 private Command comExit = new Command("退出该程序", Command.SCREEN, 1);//定义按钮
 private Command comBack = new Command("返回上一页", Command.BACK, 1);//定义按钮
 
 //构造函数
 public Midlet_1() {
  //获得当前MIDlet上的显示对象
  dis = Display.getDisplay(this);
  //将frm设置为当前页面
  dis.setCurrent(frm);
  //添加Command按钮到frm
  frm.addCommand(comDelt);
  frm.addCommand(comEdit);
  frm.addCommand(comSave);
  frm.addCommand(comExit);
  frm.addCommand(comBack);
 }
  
 protected void startApp() throws MIDletStateChangeException {
  
 }


 protected void pauseApp() {
  
 }
 
 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  
 }

}

 

高级界面开发
Displayable
Displayable的界面是充满整个屏幕的 Displayable是个抽象类
Form是它的一个子类
创建Form(Displayable)
private Form frm = new Form("请选择相应的操作!")
出现一个程序窗口铺满屏幕  标题是  请选择相应的操作!
然后创建Display
用Display获得显示对象然后再把现实的内容获得
private Display dis;
dis = Display.getDisplay(this)获得当前的显示对象this代表当前的MIDlet离得显示对象
dis.setCurrent(frm);将frm设置为当前页面
这样一个Form就显示在屏幕上了
再给Form添加按钮
按钮的定义是Command("按钮的值",Command.类型,优先级);
private Command comDelt = new Command("删除该号码", Command.SCREEN, 1);
在Form中添加Command
frm.addCommand(comDelt);
这样就有了按钮了
接下来给按钮添加事件
首先要实现CommandListener接口
其次将时间绑定到Displayable(Form)this.CommandListener(frm)
然后重写里边的构造函数commandAction(){}
最后在CommandAction函数里写按钮的实现事件的代码。
public void commandAction(Command c,Displayable d){
  if(c == comDelt || c == comEdit ||c == comSave){
   frm.append(c.getLabel());
   System.out.println(c.getLabel()+"按钮被调用");
  }
c是按钮的名称,常用来做判断依据

这样按钮就能实现功能了
具体代码
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.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class Midlet_1 extends MIDlet implements CommandListener{
 private Form frm = new Form("请选择相应的操作!");
 private Display dis;
 private Command comDelt = new Command("删除该号码", Command.SCREEN, 1);
 private Command comEdit = new Command("编辑该号码", Command.SCREEN, 1);
 private Command comSave = new Command("保存该号码", Command.SCREEN, 1);
 private Command comExit = new Command("退出该程序", Command.SCREEN, 1);
 private Command comBack = new Command("返回上一页", Command.BACK, 1);
 
 public Midlet_1() {

 }

  
 protected void startApp() throws MIDletStateChangeException {
  //获得当前MIDlet上的显示对象
  dis = Display.getDisplay(this);
  //将frm设置为当前页面
  dis.setCurrent(frm);
  //添加Command按钮到frm
  frm.addCommand(comDelt);
  frm.addCommand(comEdit);
  frm.addCommand(comSave);
  frm.addCommand(comExit);
  frm.addCommand(comBack);
  frm.setCommandListener(this);
 }

 public void commandAction(Command c,Displayable d){
  if(c == comDelt || c == comEdit ||c == comSave){
   frm.append(c.getLabel());
   System.out.println(c.getLabel()+"按钮被调用");
  }
  else if(c == comExit){
   this.notifyDestroyed();
  }
  else{
   frm.setTitle("返回");
  }
  
 }

 protected void pauseApp() {
  
 }
 
 
 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  
 }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值