📄 sendinfoform.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 + -