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

📄 msgform.java

📁 J2me实现的MSN Messeger客户端程序。聊天、添加好友、删除好友、阻止好友
💻 JAVA
字号:
package vitular.msnclient;

import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextField;
import vitular.ui.MsgDB;
import vitular.ui.Util;

public class MsgForm extends Form {
  public static final byte T_LOGIN = 1;
  public static final byte T_ASKNAME = 2;

  public static final byte ITEM_LOGINNAME = 1;
  public static final byte ITEM_PASSWORD  = 2;
  public static final byte ITEM_ASKNAME   = 3;

  private byte formType;
  private TextField loginnameField, passwordField, friendnameField;
  private MsgDB formDB;
  private boolean bSave = true;
  private Command leftCmd, rightCmd;//左边显示的命令和右边显示的命令

  /**
   * 结构函数
   * @param title String form的名字
   * @param type byte form的类型
   */
  public MsgForm(String title, byte type) {
    super(title);
    System.out.println("MsgForm() begin");
    formType = -1;
    formDB = new MsgDB("owner");
    formDB.open();
    System.out.println(formDB.getMsgCount());
    //this.addCommand(new Command("确定", Command.ITEM, 1));
    //this.addCommand(new Command("取消", Command.ITEM, 1));
    loginnameField = new TextField("用户名", null, 50, TextField.ANY);
    passwordField  = new TextField("密  码", null, 50, TextField.ANY | TextField.PASSWORD);
    friendnameField = new TextField("账号", null, 50, TextField.ANY);
    changeFormType(type);
    //this.append(loginnameField);
    //this.setCommandListener(this);
    System.out.println("MsgForm() end");
  }

  /**
   * 修改form的类型
   * @param type byte
   */
  public void changeFormType(byte type){
    if (type != formType){
      this.deleteAll();
      switch(type){
        case T_LOGIN:
          formDB.open();
          String ss = loginnameField.getString();
          int a = formDB.getMsgCount();
          if (msnMIDlet.instance.username!=null && msnMIDlet.instance.password!= null){
            loginnameField.setString(msnMIDlet.instance.username);
            passwordField.setString(msnMIDlet.instance.password);
          }else if ((loginnameField.getString()== null || loginnameField.getString().equals(""))
                    && formDB.getMsgCount() > 0){
            String s = formDB.getMsg(0);
            System.out.println("s="+s);
            loginnameField.setString(Util.getSubString(s, '$', 0));
            passwordField.setString(Util.getSubString(s, '$', 1));
          }
          this.append(loginnameField);
          this.append(passwordField);
          break;
        case T_ASKNAME:
          this.append(friendnameField);
          friendnameField.setString("@hotmail.com");
          break;
      }
      formType = type;
    }
  }

  /**
   * 设置指定item的值
   * @param itemType byte item的类型
   * @param str String
   */
  public void setItemString(byte itemType, String str){
    switch(itemType){
      case ITEM_LOGINNAME:
        loginnameField.setString(str);
        break;
      case ITEM_PASSWORD:
        passwordField.setString(str);
        break;
      case ITEM_ASKNAME:
        friendnameField.setString(str);
        break;
    }
  }

  /**
   * 取得指定item的值
   * @param itemType byte
   * @return String
   */
  public String getItemString(byte itemType){
    String s = null;
    switch(itemType){
      case ITEM_LOGINNAME:
        s = loginnameField.getString();
        break;
      case ITEM_PASSWORD:
        s = passwordField.getString();
        break;
      case ITEM_ASKNAME:
         s = friendnameField.getString();
        break;
    }
    if (s!=null && !s.equals(""))
      return s;
    else
      return null;
  }

  public void saveResult(boolean save){
    this.bSave = save;
  }

  public void setCommand(String leftStr, String rightStr){
    if (leftCmd != null)
      this.removeCommand(leftCmd);
    if (rightCmd != null)
      this.removeCommand(rightCmd);
    if (leftStr!=null){
      leftCmd = new Command(leftStr, Command.ITEM, 1);
    }else{
      leftCmd = new Command("", Command.ITEM, 1);
    }
    if (rightStr!=null){
      rightCmd = new Command(rightStr, Command.ITEM, 1);
    }else{
      rightCmd = new Command("", Command.ITEM, 1);
    }
    this.addCommand(leftCmd);
    this.addCommand(rightCmd);

  }

  /**
   * 保存用户名
   */
  public boolean saveUsername(){
    if (!loginnameField.getString().equals("")
        && !passwordField.getString().equals("")){
      try{
          formDB.open();
          formDB.setMsg(0, (loginnameField.getString() + "$" + passwordField.getString()));
          formDB.close();
          msnMIDlet.instance.username = loginnameField.getString();
          msnMIDlet.instance.password = passwordField.getString();
        }catch(Exception e){
            System.out.println(e.toString());
        }
        return true;
    }
    return false;
  }

//  /**
//   * 监听消息
//   * @param c Command
//   * @param d Displayable
//   */
//  public void commandAction(Command c, Displayable d){
//    System.out.println("command"+ c.toString());
//    formDB.open();
//    if (c.getCommandType() == Command.OK){
//      if (this.formType == T_LOGIN && bSave){//如果是登陆窗口
//        try{
//          formDB.setMsg(0, (loginnameField.getString() + "$" + passwordField.getString()));
//          System.out.println("Message COunt ="+formDB.getMsgCount()+ formDB.getMsg(0));
//          formDB.close();
//        }catch(Exception e){
//            System.out.println(e.toString());
//        }
//
//      }
//      msnMIDlet.instance.username = loginnameField.getString();
//      msnMIDlet.instance.password = passwordField.getString();
//      msnMIDlet.instance.loginMsn();
//
//    }else if (c.getCommandType() == Command.CANCEL){
//
//    }
//
//  }


}

⌨️ 快捷键说明

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