分析显示设备属性代码

网上关于j2me程序设计方面的基础文档太少了!只有自己看代码了,好在wtk中带了不少的demo,找了一个比较简单的,在屏幕上显示设备的属性。下边是代码:

package example;

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

听人说学j2me前得先学学java语言,我没听,反正也是心血来潮!但是上边这几句话就不明白是什么意思了!我想大概和vc里链接库文件差不多吧!不管它。当年英语四级得阅读理解我就是靠“猜”的,故技重施吧!

public class PropExample extends MIDlet implements CommandListener {

类的定义,implements是什么意思也不懂,反正有了CommandListener,才能实现既定的命令的执行
    private Display display;

这个Display应该就是代表了设备的显示,应该是MIDlet中已经存在的一个类。
   
private Form props;

用于向屏幕输出信息的一个对象,好像就是一种分层的机制,和GBA的硬件实现差不多。同一个display中可以若干个不同的form,用display.setCurrent方法设置显示哪一个。方便!!!
    private StringBuffer propbuf;

字符串缓冲
    private Command exitCommand = new Command("Exit", Command.EXIT, 1);

Command对象应该算是比较重要的对象了!与用户的操作相对应,是用户控制设备的最直接的桥梁,可惜,没太看懂、大概意思也就是定义了一个命令,并把它追加到某个FORM中(下边会提到),这个FORM就可以使用这个命令了!现在这个命令是EXIT,参数中的“Exit”是在FORM中显示的字符;Command.EXIT应该是既定的操作,当点击硬件上的exit键的时候就执行这个操作

对设备的每种操作都是在MIDlet中定义好了的,我要做的就是向某个form中追加这个操作,让这个form能够执行这个操作

    public PropExample() {

构造函数,初始化一些东西
        display = Display.getDisplay(this);

取得设备的显示
        props = new Form("System Properties");

追加一个form
    }

    public void startApp() {

每个类中都有的函数,从这里开始执行代码。重写MIDlet类的函数
        Runtime runtime = Runtime.getRuntime();
        runtime.gc();
        long free = runtime.freeMemory();
        long total = runtime.totalMemory();
               
        propbuf = new StringBuffer(50);

初始化字符缓冲
        props.append("Free Memory = " + free + "/n");
        props.append("Total Memory = " + total + "/n");
       
        props.append(showProp("microedition.configuration"));
        props.append(showProp("microedition.profiles"));
       
        props.append(showProp("microedition.platform"));
        props.append(showProp("microedition.locale"));
        props.append(showProp("microedition.encoding"));

form中追加字符串
       
        props.addCommand(exitCommand);

form中追加exit命令,并让“Exit”显示出来
        props.setCommandListener(this);

应该是一个等待命令输入并接收的listener
        display.setCurrent(props);    

让该form显示出来 
    }

    public void commandAction(Command c, Displayable s) {

类似exit命令的回调函数,当接收到命令的时候,调用这个函数,重写MIDlet类的函数
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        } 
    }

    String showProp(String prop) {

用户自定义的函数,不是从父类继承的根据属性名,取得属性值,并返回
        String value = System.getProperty(prop);
        propbuf.setLength(0);
        propbuf.append(prop);
        propbuf.append(" = ");
        if (value == null) {
            propbuf.append("<undefined>");
        } else {
            propbuf.append("/"");
            propbuf.append(value);
            propbuf.append("/"");
        }
        propbuf.append("/n");
        return propbuf.toString();
    }

    public void pauseApp() {
    }

继承父类的函数

    public void destroyApp(boolean unconditional) {
    }

}

继承父类的函数

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值