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

📄 registerform.java

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

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

/**
 * 注册界面
 */
public class RegisterForm extends Form implements CommandListener, HttpListener {
    /**Display对象*/
    private Display display;
    /**用户名文本框*/
    private TextField tfUsername;
    /**密码文本框*/
    private TextField tfPassword;
    /**确认密码文本框*/
    private TextField tfConfirmPassword;
    /**性别选择框*/
    private ChoiceGroup cgSex;
    /**手机号码文本框*/
    private TextField tfCellPhone;
    /**email地址*/
    private TextField tfEmail;
    /**注册按钮*/
    private Command cmdRegister;
    /**返回按钮*/
    private Command cmdBack;
    /**退出按钮*/
    private Command cmdExit;

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

    /**
     * 使用display对象进行构造
     * @param display Display对象
     */
    public RegisterForm(Display display) {
        super("注册界面");
        this.display = display;

        //初始化界面
        initUI();
    }

    /**
     * 初始化界面
     */
    private void initUI() {
        tfUsername = new TextField("用户名*:", "", 16, TextField.ANY);
        tfPassword = new TextField("密码*:", "", 16, TextField.PASSWORD);
        tfConfirmPassword = new TextField("确认密码*:", "", 16, TextField.PASSWORD);
        cgSex = new ChoiceGroup("性别*:", ChoiceGroup.EXCLUSIVE);
        cgSex.append("男", null);
        cgSex.append("女", null);
        tfCellPhone = new TextField("手机号码:", "", 11, TextField.NUMERIC);
        tfEmail = new TextField("Email:", "", 50, TextField.ANY);
        //添加到界面
        append(tfUsername);
        append(tfPassword);
        append(tfConfirmPassword);
        append(cgSex);
        append(tfCellPhone);
        append(tfEmail);
        setCommandListener(this);

        cmdRegister = new Command("注册", Command.OK, 1);
        cmdBack = new Command("返回", Command.SCREEN, 1);
        cmdExit = new Command("退出", Command.EXIT, 1);
        //添加到界面
        addCommand(cmdRegister);
        addCommand(cmdBack);
        addCommand(cmdExit);
        //初始化信息提示框
        alert = new Alert("MyIM", "", null, AlertType.INFO);
    }

    /**
     * 事件处理方法
     * @param command Command 被按下的按钮
     * @param displayable Displayable 发生事件的界面对象
     */
    public void commandAction(Command command, Displayable d) {
        //注册按钮
        if (command == cmdRegister) {
            //获得用户输入
            String userName = tfUsername.getString();
            String pwd1 = tfPassword.getString();
            String pwd2 = tfConfirmPassword.getString();
            int sex = cgSex.getSelectedIndex();
            String phoneNumber = tfCellPhone.getString();
            String email = tfEmail.getString();

            //检查输入是否完整
            if (userName.length() == 0) {
                alert.setString("用户名不能为空!");
                display.setCurrent(alert);
                return;
            } else if (pwd1.length() == 0) {
                alert.setString("密码不能为空!");
                display.setCurrent(alert);
                return;
            } else if (pwd1.length() == 0) {
                alert.setString("确认密码不能为空!");
                display.setCurrent(alert);
                return;
            }

            //比较密码和确认密码是否相同
            if (!(pwd1.equals(pwd2))) {
                alert.setString("密码和确认密码必须相同!");
                display.setCurrent(alert);
                return;
            }

            //发送数据
            sendRegisterData(userName, pwd1, sex, phoneNumber, email);
        }
        //返回按钮
        if (command == cmdBack) {
            //显示登录界面
            display.setCurrent(new LoginForm(display));
        }
        //退出按钮
        if (command == cmdExit) {
            //程序退出
            MyIMMIDlet.quitApp();
        }
    }

    /**
     * 生成注册数据,并发送
     * @param userName 用户名
     * @param pwd 密码
     * @param sex 性别,0代表男,1代表女
     * @param phoneNumber 电话号码
     * @param email email地址
     */
    private void sendRegisterData(String userName, String pwd, int sex,
                          String phoneNumber, String email) {
        try {
            //转换为字节数组
            byte[] n = userName.getBytes("utf-8");
            byte[] p1 = pwd.getBytes("utf-8");
            byte[] ph = phoneNumber.getBytes("utf-8");
            byte[] em = email.getBytes("utf-8");
            //协议数据长度
            int len = 1 + 1 + n.length + 1 + p1.length + 1 + 1 + ph.length + 1 +
                      em.length;
            //生成协议数据
            byte[] data = new byte[len];
            data[0] = RequestInterface.Register_User;
            data[1] = (byte) n.length;
            System.arraycopy(n, 0, data, 2, n.length);
            data[n.length + 2] = (byte) p1.length;
            System.arraycopy(p1, 0, data, n.length + 3, p1.length);
            data[n.length + 4 + p1.length] = (byte) sex;
            data[n.length + 5 + p1.length] = (byte) em.length;
            System.arraycopy(em, 0, data, len - 1 - em.length, em.length);
            //发送协议数据
            new HttpThread(this, data);
        } catch (Exception e) {
            System.out.println("sendRegisterData:" + e);
        }
    }

    /**
     * 处理服务器反馈数据
     * @param data byte[] 服务器反馈信息
     */
    public void getResponse(byte[] data) {
        try {
            //解析反馈
            switch (data[0]) { //指令
            case ResponseInterface.REGISTER_SUCCESS: //注册成功

                //显示注册成功提示
                alert.setString("祝贺你,注册成功!");

                //显示提示
                display.setCurrent(alert);

                //显示登录界面,并初始化登录提示框
                String userName = tfUsername.getString();
                String pwd1 = tfPassword.getString();
                display.setCurrent(new LoginForm(display, userName, pwd1));
                break;
            case ResponseInterface.REGISTER_SERVER_INFO: //服务器返回提示信息
                String msg = new String(data, 1, data.length - 1, "utf-8");
                alert.setString(msg);

                //显示提示
                display.setCurrent(alert, this);
                break;
            case ResponseInterface.REGISTER_VERSION_LOWER: //版本过低
                alert.setString("版本过低");

                //显示提示
                display.setCurrent(alert, this);
                break;
            case ResponseInterface.REGISTER_User_EXISITS: //用户已存在
                alert.setString("该用户已经被注册,请选择其他用户名");

                //显示提示
                display.setCurrent(alert, this);
                break;
            default: //其它
                doError("无法解析的数据!");
                break;
            }
        } catch (Exception e) {
            doError(e.toString());
        }
    }

    /**
     * 处理错误信息
     * @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 + -