⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inbox.java

📁 J2ME程序设计实例教程的源码
💻 JAVA
字号:
package tom.jiafei;

import javax.microedition.lcdui.*;
import javax.wireless.messaging.TextMessage;
import java.util.Vector;

/** 
 * 该类描述了收件箱,提供了查看接收的短消息的功能。
 */
public class Inbox extends Form implements CommandListener {
    private SMSMIDlet midlet;
    private Vector contents;        
    private Vector phoneNumbers;
    private int index = -1;
    
    private StringItem siPN;
    private StringItem siContent;
    private Command cmdBack;
    private Command cmdNext;
    private Displayable backScreen;
    
    public Inbox(SMSMIDlet midlet) {
        super("收件箱");
        this.midlet = midlet;
        contents = new Vector();
        phoneNumbers = new Vector();
        
        //创建收件箱的图形用户界面
        siPN = new StringItem("发件人:", "");
        siContent = new StringItem("内容:", "");
        append(siPN);
        append(siContent);
        cmdBack = new Command("返回", Command.BACK, 1);
        cmdNext = new Command("下一条", Command.SCREEN, 2);
        addCommand(cmdBack);
        addCommand(cmdNext);
        setCommandListener(this);
    }
    
    //箱收件箱中添加一条文本消息
    public void add(TextMessage msg) {
        String pn = msg.getAddress();   //发件人地址
        int aindex = pn.indexOf(":");
        phoneNumbers.addElement(pn.substring(aindex+1));
        contents.addElement(msg.getPayloadText());
    }
    
    //显示收件箱用户界面
    public void showUI(Displayable backScreen) {
        this.backScreen = backScreen;
        Display display = Display.getDisplay(midlet);
        index = phoneNumbers.size();
        if(index == 0) {
            Alert alert = new Alert("信息", "收件箱空!!!!", null, AlertType.INFO);
            alert.setTimeout(2000);
            display.setCurrent(alert, backScreen);
        }
        else {
            next();
            display.setCurrent(this);
        }
    }
    
    private void next() {
        index--;
        if(index == -1) {
            index = phoneNumbers.size()-1;
        }
        siPN.setText((String)phoneNumbers.elementAt(index));
        siContent.setText("\n" + (String)contents.elementAt(index));
    }
    
    //处理用户界面命令
    public void commandAction(Command cmd, Displayable d) {
        if(cmd == cmdBack) {
            Display display = Display.getDisplay(midlet);
            display.setCurrent(backScreen);
        }
        else if(cmd == cmdNext) {
            next();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -