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

📄 findfriend2.java

📁 本系统充分利用了Java语言的平台无关性等众多优点
💻 JAVA
字号:
package cilent;



import wodqq.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Vector;
import java.net.*;
import java.io.*;

public class FindFriend2
    extends JFrame { //查找好友类
  JLabel jLabel1 = new JLabel();
  JButton find2 = new JButton();
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JList list2;
///////////////////以下是好友的呢称,性别等信息
  Vector nickname = new Vector();
  Vector sex = new Vector();
  Vector place = new Vector();
  Vector jicq = new Vector();
  Vector ip = new Vector();
  Vector pic = new Vector();
  Vector status = new Vector();
  Vector emails = new Vector();
  Vector infos = new Vector();
//以下临时保存好友的呢称,性别等信息
  Vector tmpjicq = new Vector(); //jicqid
  Vector tmpname = new Vector(); //jicqname
  Vector tmpip = new Vector(); //ip
  Vector tmppic = new Vector(); //pic info
  Vector tmpstatus = new Vector(); //status
  Vector tmpemail = new Vector();
  Vector tmpinfo = new Vector();
//以下创建网络相关变量
  Socket socket;
  BufferedReader in;
  PrintWriter out;
  int myid;
  String serverhost;
  int servport;
  DatagramPacket sendPacket;
  DatagramSocket sendSocket;
  int sendPort = 5000;
//////////////////
  JPopupMenu findmenu = new JPopupMenu();
  JMenuItem look = new JMenuItem();
  JMenuItem add = new JMenuItem();
  public FindFriend2(int whoami, String host, int port) { //查找好友类构造函数
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      serverhost = host;
      servport = port;
      myid = whoami;
      jbInit();
    }
    catch (Exception e) {
      e.printStackTrace();
    } //以下与服务器连接
    try {
      socket = new Socket(InetAddress.getByName(serverhost), servport);

      in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      out = new PrintWriter(new BufferedWriter(
          new OutputStreamWriter(socket.getOutputStream())), true);
      sendSocket = new DatagramSocket();
    }
    catch (IOException e1) {}
  }

  private void jbInit() throws Exception { //以下是程序界面
    jLabel1.setText("下面是在线的朋友");
    jLabel1.setBounds(new Rectangle(11, 11, 211, 18));
    this.getContentPane().setLayout(new FlowLayout());
    find2.setText("查找");
    find2.setBounds(new Rectangle(8, 289, 79, 29));
    find2.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        find2_mouseClicked(e);
      }
    });
    jButton1.setText("next");
    jButton1.setBounds(new Rectangle(110, 288, 79, 29));
    jButton2.setText("up");
    jButton2.setBounds(new Rectangle(211, 285, 79, 29));
    jButton3.setText("cancel");
    jButton3.setBounds(new Rectangle(317, 289, 79, 29));
    // nickname=new Vector();
    // sex=new Vector();
    // place=new Vector();
    ListModel model = new FindListModel(nickname, sex, place); //列表模型
    ListCellRenderer renderer = new FindListCellRenderer();
    list2 = new JList(model);
    list2.setSize(200, 200);
    list2.setBackground(Color.white);
    list2.setAlignmentX( (float) 1.0);
    list2.setAlignmentY( (float) 1.0);
    list2.setCellRenderer(renderer);
    list2.setVisibleRowCount(7);
    list2.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        list2_mousePressed(e);
      }
    });
    look.setText("查看资料");
    add.setText("加为好友");
    add.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        add_mousePressed(e);
      }
    });
    this.getContentPane().setBackground(new Color(156, 225, 255));    this.getContentPane().add(jLabel1, null);
    this.getContentPane().add(new JScrollPane(list2));
    this.getContentPane().add(find2, null);
    this.getContentPane().add(jButton1, null);
    this.getContentPane().add(jButton2, null);
    this.getContentPane().add(jButton3, null);
    findmenu.add(look);
    findmenu.add(add);
  } //以下是关闭本窗口

  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      //this.dispose();
      this.hide();
    }
  }

//以下向服务器发送查找好友请求
  void find2_mouseClicked(MouseEvent e) {
    out.println("find");
    DefaultListModel mm = (DefaultListModel) list2.getModel();
/////////////////find friend info
    try {
      String s = " ";
//从服务器读取好友信息
      do {
        s = in.readLine();
        if (s.equals("over"))
          break;
        nickname.add(s);
        sex.add(in.readLine());
        place.add(in.readLine());
        ip.add(in.readLine());
        emails.add(in.readLine());
        infos.add(in.readLine());
      }
      while (!s.equals("over"));
/////////////end  find  info
//read their jicqno
      int theirjicq, picinfo, sta;
      for (int x = 0; x < nickname.size(); x++) {
        theirjicq = Integer.parseInt(in.readLine());
//System.out.println(theirjicq);
        jicq.add(new Integer(theirjicq));
        picinfo = Integer.parseInt(in.readLine());
        pic.add(new Integer(picinfo));
        sta = Integer.parseInt(in.readLine());
//System.out.println(sta);
        status.add(new Integer(sta));
//System.out.println(jicq.get(x));
      }
//在列表中显示
      for (int i = 0; i < nickname.size(); i++) {
        mm.addElement(new Object[] {nickname.get(i), sex.get(i), place.get(i)});
      } //for

    }
    catch (IOException e4) {
      System.out.println("false");
    }
  }

//显示查找好友菜单
  void list2_mousePressed(MouseEvent e) {
    findmenu.show(this, e.getX() + 20, e.getY() + 50);

  }

/////////////add frined
//以下将添加的好友存储在临时矢量
  void add_mousePressed(MouseEvent e) {
//add friend to database
    int dd;
    dd = list2.getSelectedIndex();
    tmpjicq.add(jicq.get(dd));
    tmpname.add(nickname.get(dd));
    tmpip.add(ip.get(dd));
    tmppic.add(pic.get(dd));
    tmpstatus.add(status.get(dd));
    tmpemail.add(emails.get(dd));
    tmpinfo.add(infos.get(dd));
//以下向服务器发送添加好友请求
    out.println("addfriend");
    out.println(jicq.get(dd));
    out.println(myid);
    try { //以下告诉客户将其加为好友
      String whoips;
      String s = "oneaddyou" + myid;
      s.trim();
      System.out.println(s);
      byte[] data = s.getBytes();
      whoips = ip.get(dd).toString().trim();
      sendPacket = new
          DatagramPacket(data, s.length(), InetAddress.getByName(whoips),
                         sendPort);
      sendSocket.send(sendPacket);

    }
    catch (IOException e2) {
      e2.printStackTrace();
    }
//}catch(IOException df){};

  }
/////////////add friend end
}

⌨️ 快捷键说明

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