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

📄 sendinfoform.java

📁 一个手机上的IM 即时通信工具完整代码 J2ME项目
💻 JAVA
字号:
package myim.ui;

import myim.logic.*;
import javax.microedition.lcdui.*;

/**
 * 发送信息界面
 */
public class SendInfoForm extends TextBox implements CommandListener,
        HttpListener {
    /**显示控制对象*/
    private Display display;
    /**用户姓名*/
    private String userName;
    /**用户id*/
    private String id;
    /**阅读信息界面*/
    private ReadInfoForm rif;

    /**清除按钮*/
    private Command cmdClear;
    /**返回按钮*/
    private Command cmdBack;
    /**发送按钮*/
    private Command cmdSend;

    /**信息提示框*/
    private Alert alert;

    public SendInfoForm(Display display, String userName, String id,
                        ReadInfoForm rif) {
        super(userName, "", 100, TextField.ANY);

        this.display = display;
        this.userName = userName;
        this.id = id;
        this.rif = rif;
        initUI();
    }

    private void initUI() {
        //注册事件监听器
        setCommandListener(this);

        cmdClear = new Command("清除", Command.SCREEN, 1);
        cmdSend = new Command("发送", Command.OK, 1);
        cmdBack = new Command("返回", Command.BACK, 1);

        addCommand(cmdClear);
        addCommand(cmdBack);
        addCommand(cmdSend);

        alert = new Alert(userName,"",null,AlertType.INFO);
    }

    public void commandAction(Command c, Displayable d) {
        //清除按钮
        if (c == cmdClear) {

        }

        //返回按钮
        if (c == cmdBack) {
            display.setCurrent(rif);
        }

        //发送按钮
        if (c == cmdSend) {
            //获得用户输入
            String info = this.getString();
            //判断输入是否为空
            if(info == null || info.length() == 0){
                doError("输入不能为空!");
            }else{
                //发送信息
                sendInfo(info);
            }
        }
    }

    /**
     * 发送信息
     * 协议格式:发送信息指令+用户id长度+用户id+用户名长度+用户名+信息长度+信息内容
     * @param info 信息内容
     */
    private void sendInfo(String info) {
        try {
            //用户id
            byte[] idData = id.getBytes("utf-8");
            //用户名
            byte[] nameData = userName.getBytes("utf-8");
            //信息长度
            byte[] infoData = info.getBytes("utf-8");

            //构造协议数据
            byte[] data = new byte[1 + 1 + idData.length + 1 + nameData.length + 1 + infoData.length];
            data[0] = RequestInterface.SEND_INFO_TO_OTHER_USER;
            data[1] = (byte)idData.length;
            System.arraycopy(idData,0,data,2,idData.length);


        } catch (Exception e) {
            doError("异常数据!");
        }
    }

    /**
     * 处理服务器反馈数据
     * @param data byte[] 服务器反馈信息
     */
    public void getResponse(byte[] data) {

    }

    /**
     * 处理错误信息
     * @param errMsg String 错误信息
     */
    public void doError(String errMsg) {
        alert.setString(errMsg);
        //显示提示
        display.setCurrent(alert, this);
    }
}

⌨️ 快捷键说明

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