一起来学J2ME_1:撰写一个手机系统属性显示程序 (附jad文件的错误代码)

目标:撰写一个手机系统属性显示程序SysInfoMIDlet

 

开发环境:NetBeans4.1

测试机型:Sun DefaultColorPhone

真机型号:Nokia 6030

 

 

功能实现:

1.实现手机系统属性的显示

2.能够响应上,下方向键的消息,使属性信息队列能够在屏幕上滚动显示。

3.能够响应左,右方向键的消息,使过长的属性信息能够在屏幕在左右移动,让用户看得见属性信息的全部内容。

4.能够设置显示字体的大小,并根据字体的大小调节行距。

 

代码如下,注释以后会慢慢加上的:

 

文件1:SysInfoMIDlet.java

 

 

 

本人正在学习J2ME,将自己的所获发于网上与大家分享,不足之处待路过的神仙哥哥神仙姐姐们拍砖提醒之。感激流涕!!!!!!!!        

 

 

附jad文件的错误代码:

 

       jad ( Java Application Discriptor ) 文件是J2ME的一个重要的组成部分,在我们发布J2ME程序的时候,jad文件经常报出各种错误,如:
  com.sun.kvem.midletsuite.InvalidJadException: Reason = 13
  其中的错误原因是 1-52的代码,很让人费解。我在网上找到了这些代码的解释,和大家分享如下:


  public static final int JAD_SERVER_NOT_FOUND = 1;
  public static final int JAD_NOT_FOUND = 2;
  public static final int MISSING_PROVIDER_CERT = 4;
  public static final int CORRUPT_PROVIDER_CERT = 5;
  public static final int UNKNOWN_CA = 6;
  public static final int INVALID_PROVIDER_CERT = 7;
    public static final int CORRUPT_SIGNATURE = 8;
  public static final int INVALID_SIGNATURE = 9;
  public static final int UNSUPPORTED_CERT = 10;
  public static final int EXPIRED_PROVIDER_CERT = 11;
  public static final int EXPIRED_CA_KEY = 12;
  public static final int MISSING_SUITE_NAME = 13;
  public static final int MISSING_VENDOR = 14;
  public static final int MISSING_VERSION = 15;
  public static final int INVALID_VERSION = 16;
    public static final int OLD_VERSION = 17;
  public static final int MISSING_JAR_URL = 18;
  public static final int JAR_SERVER_NOT_FOUND = 19;
  public static final int JAR_NOT_FOUND = 20;
  public static final int MISSING_JAR_SIZE = 21;
  public static final int SUITE_NAME_MISMATCH = 25;
  public static final int VERSION_MISMATCH = 26;
  public static final int VENDOR_MISMATCH = 27;
  public static final int INVALID_KEY = 28;
  public static final int INVALID_VALUE = 29;
  public static final int INSUFFICIENT_STORAGE = 30;
  public static final int JAR_SIZE_MISMATCH = 31;
  public static final int NEW_VERSION = 32;
  public static final int UNAUTHORIZED = 33;
  public static final int JAD_MOVED = 34;
  public static final int CANNOT_AUTH = 35;
  public static final int CORRUPT_JAR = 36;
  public static final int INVALID_JAD_TYPE = 37;
    public static final int INVALID_JAR_TYPE = 38;
  public static final int ALREADY_INSTALLED = 39;
  public static final int DEVICE_INCOMPATIBLE = 40;
  public static final int MISSING_CONFIGURATION = 41;
  public static final int MISSING_PROFILE = 42;
  public static final int INVALID_JAD_URL = 43;
  public static final int INVALID_JAR_URL = 44;
  public static final int PUSH_DUP_FAILURE = 45;
  public static final int PUSH_FORMAT_FAILURE = 46;
  public static final int PUSH_PROTO_FAILURE = 47;
  public static final int PUSH_CLASS_FAILURE = 48;
  public static final int AUTHORIZATION_FAILURE = 49;
  public static final int ATTRIBUTE_MISMATCH = 50;
  public static final int PROXY_AUTH = 51;
    public static final int TRUSTED_OVERWRITE_FAILURE = 52;
  有了这些代码的解释, 我们就很容易知道错误的原因了。
  另外,大家知道,有的手机在安装jar文件的时候,不需要jad文件。这是因为手机厂商在操作系统中内置了对jar文件的解析功能。就如同手机自动生成 jad文件,然后使用这个jad文件安装jar文件一样。

import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; 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.TextField; public class PhoneAdd extends Form { private UIController controller; private Command BACK_COMMAND; private Command SAVE_COMMAND; private TextField nameField; private TextField phoneField; private TextField QQField; private TextField sexField; private TextField ageField; // private ImageItem iconQQ; // private Image icon; public PhoneAdd(String title, UIController control) { super(title); controller = control; this.setCommandListener(new PhoneAddListener()); BACK_COMMAND = new Command("返回", Command.BACK, 1); SAVE_COMMAND = new Command("确认", Command.OK, 2); this.addCommand(BACK_COMMAND); this.addCommand(SAVE_COMMAND); /* try{ icon=Image.createImage("/icon/7.png"); }catch(java.io.IOException e){ icon=null; System.out.println("图片导入异常"); } */ nameField = new TextField("名字", "", 16, TextField.ANY); phoneField = new TextField("电话", "", 16, TextField.PHONENUMBER); QQField = new TextField("QQ", "", 11, TextField.NUMERIC); sexField = new TextField("性别", "", 2, TextField.ANY); ageField = new TextField("年龄","",3,TextField.NUMERIC); // iconQQ=new ImageItem("",icon,Item.LAYOUT_LEFT,"图片无法显示"); this.append(nameField); this.append(phoneField); this.append(sexField); // this.append(iconQQ); this.append(QQField); this.append(ageField); } public void clear() { nameField.setString(""); phoneField.setString(""); sexField.setString(""); QQField.setString(""); ageField.setString(""); } private class PhoneAddListener implements CommandListener { public void commandAction(Command command, Displayable disp) { if (command == BACK_COMMAND) { controller.handleEvent(UIController.EventID.EVENT_VIEW_BACK, null); } else if (command == SAVE_COMMAND) { String name = nameField.getString(); String phone = phoneField.getString(); String QQ = QQField.getString(); String sex = sexField.getString(); String age= ageField.getString(); if ((name == null || name.equals("")) || (phone == null || phone.equals(""))) { return; } Object[] args = { name, phone, QQ, sex ,age}; controller.handleEvent(UIController.EventID.EVENT_NEW_SAVE, args); } } } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值