用JAVA打造自己的QQ--源代码客户端(八)

注册窗体的代码fmRegister实现如下:

package client;

import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import java.awt.event.*;
import java.net.*;
import java.net.Socket;
import java.io.*;
import java.util.Vector;

public class fmRegister extends JFrame {
  XYLayout xYLayout1 = new XYLayout();
  JPanel jPanel1 = new JPanel();
  JLabel jLabel1 = new JLabel();
  XYLayout xYLayout2 = new XYLayout();
  JLabel jLabel2 = new JLabel();
  JTextField nickname = new JTextField();
  JLabel jLabel3 = new JLabel();
  JPasswordField password = new JPasswordField();
  JPasswordField confirm = new JPasswordField();
  JLabel jLabel4 = new JLabel();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JLabel jLabel5 = new JLabel();
  JRadioButton boy = new JRadioButton();
  JRadioButton girl = new JRadioButton();
  JLabel jLabel6 = new JLabel();
  JComboBox headpic = new JComboBox();
  JLabel jLabel7 = new JLabel();
  JTextField email = new JTextField();
  JLabel jLabel8 = new JLabel();
  JLabel jLabel9 = new JLabel();
  JTextArea info = new JTextArea();
  private String[] pics = new String[] { //头像
      "1.jpg", "3.jpg",
      "5.jpg", "7.jpg"};
  String sername; //服务器名
  int serverport; //服务器端口
  Vector myinfo=new Vector();
  JTextField comefrom = new JTextField();
  public fmRegister(String s, int port) {
    try {
      sername = s;
      serverport = port;
      jbInit();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }

  void jbInit() throws Exception {
    xYLayout1.setWidth(262);
    xYLayout1.setHeight(350);
    this.getContentPane().setBackground(SystemColor.desktop);
    this.setForeground(SystemColor.desktop);
    this.setResizable(false);
    this.setState(Frame.NORMAL);
    this.setTitle("申请JICQ帐号");
    this.getContentPane().setLayout(xYLayout1);
    jLabel1.setFont(new java.awt.Font("隶书", 1, 18));
    jLabel1.setForeground(SystemColor.inactiveCaptionText);
    jLabel1.setOpaque(false);
    jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
    jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
    jLabel1.setText("JICQ注册向导");
    jPanel1.setLayout(xYLayout2);
    jLabel2.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel2.setForeground(SystemColor.desktop);
    jLabel2.setText("昵  称:");
    jPanel1.setBackground(SystemColor.inactiveCaptionText);
    jPanel1.setBorder(BorderFactory.createLoweredBevelBorder());
    jPanel1.setVerifyInputWhenFocusTarget(true);
    nickname.setForeground(SystemColor.desktop);
    nickname.setText("");
    jLabel3.setText("密  码:");
    jLabel3.setForeground(SystemColor.desktop);
    jLabel3.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel4.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel4.setForeground(SystemColor.desktop);
    jLabel4.setText("确  认:");
    jButton1.setBackground(SystemColor.inactiveCaptionText);
    jButton1.setFont(new java.awt.Font("隶书", 0, 14));
    jButton1.setForeground(SystemColor.desktop);
    jButton1.setBorder(BorderFactory.createRaisedBevelBorder());
    jButton1.setText("确    定");
    jButton1.addActionListener(new fmRegister_jButton1_actionAdapter(this));
    jButton2.setBackground(SystemColor.inactiveCaptionText);
    jButton2.setFont(new java.awt.Font("隶书", 0, 14));
    jButton2.setForeground(SystemColor.desktop);
    jButton2.setBorder(BorderFactory.createRaisedBevelBorder());
    jButton2.setText("取    消");
    jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        jButton2_mouseClicked(e);
      }
    });
    password.setText("");
    confirm.setText("");
    jLabel5.setText("性  别:");
    jLabel5.setForeground(SystemColor.desktop);
    jLabel5.setFont(new java.awt.Font("隶书", 0, 14));
    boy.setBackground(SystemColor.inactiveCaptionText);
    boy.setFont(new java.awt.Font("隶书", 0, 14));
    boy.setForeground(SystemColor.desktop);
    boy.setSelected(true);
    boy.setText("帅  哥");
    girl.setText("美  女");
    girl.setForeground(SystemColor.desktop);
    girl.setBackground(SystemColor.inactiveCaptionText);
    girl.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel6.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel6.setForeground(SystemColor.desktop);
    jLabel6.setText("头  像:");
    headpic.setBackground(SystemColor.window);
    headpic.setForeground(SystemColor.desktop);
    headpic.setBorder(BorderFactory.createLineBorder(Color.black));
    jLabel7.setForeground(SystemColor.desktop);
    jLabel7.setRequestFocusEnabled(true);
    jLabel7.setText("邮  箱:");
    jLabel7.setFont(new java.awt.Font("隶书", 0, 14));
    email.setText("");
    email.setForeground(SystemColor.desktop);
    jLabel8.setText("来  自:");
    jLabel8.setForeground(SystemColor.desktop);
    jLabel8.setRequestFocusEnabled(true);
    jLabel8.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel9.setFont(new java.awt.Font("隶书", 0, 14));
    jLabel9.setText("签  名:");
    jLabel9.setRequestFocusEnabled(true);
    jLabel9.setForeground(SystemColor.desktop);
    info.setFont(new java.awt.Font("隶书", 0, 14));
    info.setForeground(SystemColor.desktop);
    info.setBorder(BorderFactory.createLineBorder(Color.black));
    info.setCaretColor(SystemColor.desktop);
    info.setText("");
    comefrom.setFont(new java.awt.Font("隶书", 0, 11));
    comefrom.setForeground(SystemColor.desktop);
    comefrom.setText("");
    this.getContentPane().add(jPanel1, new XYConstraints(3, 27, 254, 279));
    jPanel1.add(info,  new XYConstraints(60, 175, 179, 93));
    jPanel1.add(nickname, new XYConstraints(60, 9, 179, 17));
    jPanel1.add(jLabel2, new XYConstraints(8, 6, -1, 23));
    jPanel1.add(jLabel3, new XYConstraints(8, 33, 56, 23));
    jPanel1.add(password, new XYConstraints(60, 37, 179, 17));
    jPanel1.add(jLabel4, new XYConstraints(8, 60, 56, 23));
    jPanel1.add(confirm, new XYConstraints(60, 64, 179, 17));
    jPanel1.add(jLabel5, new XYConstraints(8, 88, 56, 23));
    jPanel1.add(boy, new XYConstraints(75, 92, 70, 18));
    jPanel1.add(girl, new XYConstraints(163, 92, 78, 18));
    jPanel1.add(jLabel7, new XYConstraints(8, 142, 56, 23));
    jPanel1.add(jLabel9, new XYConstraints(8, 169, 56, 23));
    jPanel1.add(email, new XYConstraints(60, 148, 179, 17));
    jPanel1.add(headpic, new XYConstraints(59, 120, 59, 17));
    jPanel1.add(jLabel6, new XYConstraints(8, 115, 56, 23));
    jPanel1.add(jLabel8,  new XYConstraints(126, 119, -1, 17));
    jPanel1.add(comefrom,      new XYConstraints(177, 121, 59, 18));
    this.getContentPane().add(jLabel1, new XYConstraints(46, 0, 163, 24));
    this.getContentPane().add(jButton2, new XYConstraints(145, 318, 93, 21));
    this.getContentPane().add(jButton1, new XYConstraints(21, 317, 93, 21));
    this.addWindowListener(new WindowAdapter()
     {
         public void  windowClosing(WindowEvent e){
              System.exit(0);
         }
     }                     );
  }

  void jButton1_actionPerformed(ActionEvent e) {

      //problem:confirm password
      /*if(!password.getPassword().toString().trim().equals(confirm.getPassword().toString().trim()))
      {
          Object msg="密码输入不一致,请重新输入!";
          JOptionPane.showMessageDialog(this,msg,"JICQ提示您",JOptionPane.ERROR_MESSAGE);
          this.password.setText("");
          this.confirm.setText("");
          return;
      }*/
      if(boy.isSelected()&&girl.isSelected() || (!boy.isSelected()&&!girl.isSelected())){
        JOptionPane.showMessageDialog(this,"请选择您的性别,‘帅哥’或‘美女’!","JICQ提示您",JOptionPane.ERROR_MESSAGE);
        boy.setSelected(true);
        return;
      }
    try {
      System.out.println(sername);
      System.out.println(serverport);
      System.out.println("now bagin registing your no...");
      Socket socket = new Socket(InetAddress.getByName(sername), serverport); //连接服务器
      BufferedReader in = new BufferedReader(new InputStreamReader(socket.
          getInputStream()));
      PrintWriter out = new PrintWriter(new BufferedWriter(
          new OutputStreamWriter(socket.getOutputStream())), true);
      String sex,ip;
      if(boy.isSelected())
         sex="帅哥";
      else
         sex="美女";
      ip=socket.getInetAddress().getLocalHost().getHostAddress();
      System.out.println("client ip:"+ip);
      out.println("new"); //发送新建用户请求
      out.println(nickname.getText().trim()); //发送呢称等信息
      out.println(password.getPassword());
      out.println(email.getText().trim());
      out.println(info.getText().trim());
      out.println(comefrom.getText());
      out.println(headpic.getSelectedIndex()); //head picindex
      out.println(sex);//changed:add
      out.println(ip);//changed:add

      String str = " ";
      //do{
      str = in.readLine().trim(); //从服务器读取信息
      //如果出错
      if (str.equals("false")) JOptionPane.showMessageDialog(this, "对不起,出错了:-(",
          "JICQ提示您", JOptionPane.INFORMATION_MESSAGE);
      else { //如果成功就告诉用户其号码
        String no;
        no = in.readLine().toString(); ///toString
        myinfo.add(this.nickname.getText());
        myinfo.add(no);
        myinfo.add(ip);
        myinfo.add("1");
        myinfo.add(String.valueOf(this.headpic.getSelectedIndex()));
        myinfo.add(this.email.getText().trim());
        myinfo.add(this.info.getText());
        myinfo.add(sex);
        myinfo.add(this.comefrom.getText().toString());
        JOptionPane.showMessageDialog(this, "注册成功,您的JICQ号码为" + no, "JICQ提示您",
                                      JOptionPane.INFORMATION_MESSAGE);
        this.dispose(); //并打开主窗口

        fmMain main = new fmMain(myinfo, sername, serverport);
        main.pack();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        //让窗体从屏幕右上角下滑
        double left=screenSize.getWidth()-main.getSize().getWidth();
         main.setLocation((int)left,0);
         main.setVisible(true);
         for (int  h=0;h<=445; h+=1){
            main.setSize(183,h);
         }
         main.setResizable(false);

      }
      //System.out.println("/n");
      //}while(!str.equals("ok"));
      // socket.close();
    }
    catch (IOException e1) {}
  }

  void jButton2_mouseClicked(MouseEvent e) {
       System.exit(0);
  }
}

class fmRegister_jButton1_actionAdapter implements java.awt.event.ActionListener {
  fmRegister adaptee;

  fmRegister_jButton1_actionAdapter(fmRegister adaptee){
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值