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

📄 mainwin.java.bak

📁 java实现的仿QQ的源码。可以查找添加删除好友。需要与数据库连接。
💻 BAK
📖 第 1 页 / 共 3 页
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Vector;
import java.net.*;
import java.io.*;
 class FindFriend2 extends JFrame {//查找好友类
  JLabel jLabel1 = new JLabel();
  JButton find2 = new JButton();
  
 
  JButton jButton3 = new JButton();
  JList list2;

 Vector nickname=new Vector();
 Vector sex=new Vector();
 Vector place=new Vector();
 Vector jtalk=new Vector();
 Vector ip=new Vector();
 Vector pic=new Vector();
 Vector status=new Vector();
 Vector emails=new Vector();
 Vector infos=new Vector();

 Vector tmpjtalk=new Vector();
 Vector tmpname=new Vector();
 Vector tmpip=new Vector();
 Vector tmppic=new Vector();
 Vector tmpstatus=new Vector();
 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);
      }
    });
    
    jButton3.setText("取消");
    jButton3.setBounds(new Rectangle(317, 289, 79, 29));
    ListModel model=new FindListModel(nickname,sex,place);
    ListCellRenderer renderer=new FindListCellRenderer();
    list2=new JList(model);
    list2.setSize(200,200);
    list2.setBackground(new Color(255, 255, 210));
    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().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.hide();
    }
  }
 void find2_mouseClicked(MouseEvent e) {
out.println("find");
DefaultListModel mm=(DefaultListModel)list2.getModel();
//发送查找好友请求

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"));
int theirjtalk,picinfo,sta;
for(int x=0;x<nickname.size();x++){
theirjtalk=Integer.parseInt(in.readLine());
jtalk.add(new Integer(theirjtalk));
picinfo=Integer.parseInt(in.readLine());
pic.add(new Integer(picinfo));
sta=Integer.parseInt(in.readLine());
status.add(new Integer(sta));
}
//在列表中显示
for(int i=0;i<nickname.size();i++){
 mm.addElement(new Object[]{nickname.get(i),sex.get(i),place.get(i)});
 }

}catch(IOException e4){System.out.println("ERROR");}
}
 void list2_mousePressed(MouseEvent e) {
findmenu.show(this,e.getX()+20,e.getY()+50);

  }
void  jButton3_mouseClicked(MouseEvent e){
	this.dispose();
}


void add_mousePressed(MouseEvent e) {//添加好友
int dd;
dd=list2.getSelectedIndex();
tmpjtalk.add(jtalk.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(jtalk.get(dd));
out.println(myid);
 try{ //以下通知用户将其加为好友
       String whoips;
       String  s=myid+"has add"+jtalk.get(dd)+"as friend";
       s.trim();
       System.out.println(s);
	   JOptionPane.showMessageDialog(this,"添加好友成功","通知",JOptionPane.INFORMATION_MESSAGE);
      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();}
 }
}

class FindListModel extends DefaultListModel
      {   public FindListModel(Vector nickname,Vector sex,Vector place)
          { for(int i=0;i<nickname.size();++i){
          addElement(new Object[]{nickname.get(i),sex.get(i),place.get(i)});
          }
          }
public  String getName(Object object)
  { Object[] array=(Object[])object;
  return(String) array[0];
  }
public String getSex(Object object)
{ Object[] array=(Object[]) object;
  return (String) array[1];
  }
public String getPlace(Object object)
{ Object[] array=(Object[])object;
   return (String) array[2];

}
}
  class FindListCellRenderer extends JLabel implements ListCellRenderer//处理列表渲染
{ private Border lineBorder=BorderFactory.createLineBorder(Color.red,2),
           emptyBorder =BorderFactory.createEmptyBorder(2,2,2,2);
  public FindListCellRenderer(){
     setOpaque(true);
     }
public Component getListCellRendererComponent(JList list,Object value,int index,
                                                boolean isSelected,boolean cellHasFocus)
      { FindListModel model=(FindListModel) list.getModel();
        setText(model.getName(value)+"  "+model.getSex(value)+"  "+model.getPlace(value));
             if(isSelected){setForeground(list.getSelectionForeground());
                         setBackground(list.getSelectionBackground());
                         }
          else { setForeground(list.getForeground());
                   setBackground(list.getBackground());}
          if(cellHasFocus) setBorder(lineBorder);
                else setBorder(emptyBorder);
          return this;
          }
          }

public class MainWin extends JFrame implements Runnable{
  JPanel contentPane;

 Vector friendnames=new Vector();
int friendnum;
   private String [] picsonline=new String []{
      "1.jpg","3.jpg","5.jpg","7.jpg"};
  private String [] picsoffline=new String[]{
   "2.jpg","4.jpg", "6.jpg","8.jpg"};
  Vector friendjtalk=new Vector();
  Vector udpport=new Vector();
  Vector friendips=new Vector();
  Vector friendemail=new Vector();
  Vector friendinfo=new Vector();
  Vector picno=new Vector();
  Vector status=new Vector();
 
  Vector tempname=new Vector();
  Vector tempjtalk=new Vector();
  Vector tempip=new Vector();
  Vector temppic=new Vector();
  Vector tempstatus=new Vector();
  Vector whoaddmesip=new Vector();
  Vector tempemail=new Vector();
  Vector tempinfo=new Vector();
   int index;
   int index3;
   int index4;
   boolean fromunknow=false;
FindFriend2 findf;
JDialog hello=new JDialog();
JDialog OneAddyou=new JDialog();
JDialog DirectAdd=new JDialog();
int tempgetjtalk;
  ImageIcon icon1=new ImageIcon("cab_small.gif");
  ImageIcon icon6=new ImageIcon("sun_small.gif");
  JButton jButton1 = new JButton();
  JButton direct = new JButton();
  JLabel info=new JLabel();
  JDialog about=new JDialog();
  JDialog senddata=new JDialog();
  JDialog getdata=new JDialog();
  JButton ok=new JButton();
  JPopupMenu jPopupMenu1 = new JPopupMenu();
  JMenuItem sendmessage = new JMenuItem();
  JMenuItem getmessage = new JMenuItem();
  JMenuItem lookinfo = new JMenuItem();
  
  JLabel name = new JLabel();
  JTextField nametext = new JTextField();
  JLabel icq = new JLabel();
  JTextField icqno = new JTextField();
  JButton send = new JButton();
  JButton cancel = new JButton();
  JTextArea sendtext = new JTextArea();
  JList list;
  JLabel jLabel2 = new JLabel();
  JButton find = new JButton();
  FlowLayout flowLayout1 = new FlowLayout();
  Socket socket;
  BufferedReader in;
  PrintWriter out;
  DatagramPacket sendPacket,receivePacket;
  DatagramSocket sendSocket,receiveSocket;
  int udpPORT=5001;
  int sendPort=5000;
  String server;
  int serverport;
   byte array[]=new byte[512];
  Thread thread;
  int myjtalk;
  String received;

  JLabel jLabel3 = new JLabel();
  JTextField getfromname = new JTextField();
  JLabel jLabel4 = new JLabel();
  JTextField getfromjtalk = new JTextField();
  JTextArea getinfo = new JTextArea();
  JButton getok = new JButton();
  String theip;
  JButton update = new JButton();
  JMenuItem delfriend = new JMenuItem();
  
  JButton online = new JButton();
  JLabel jLabel1 = new JLabel();
  JTextField helloname = new JTextField();
  JLabel jLabel5 = new JLabel();
  JTextField hellojtalk = new JTextField();
  JLabel jLabel6 = new JLabel();
  JTextField helloemail = new JTextField();
  JLabel jLabel7 = new JLabel();
  JTextArea helloinfo = new JTextArea();
  JButton jButton3 = new JButton();
  JButton hellook = new JButton();
  JLabel jLabel8 = new JLabel();
  JLabel jLabel9 = new JLabel();
  JLabel jLabel10 = new JLabel();
  JLabel oneaddme = new JLabel();
  JButton addit = new JButton();
  JButton iknow = new JButton();
  JLabel jLabel11 = new JLabel();
  JLabel jLabel12 = new JLabel();
  JTextField friendid = new JTextField();
  JButton directaddok = new JButton();

 public void  ConnectServer(int myid){
   try{ socket=new Socket(InetAddress.getByName(server),serverport);

       in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
       out=new PrintWriter(new BufferedWriter(
                             new OutputStreamWriter(socket.getOutputStream())),true);//连接服务器

  
          out.println("friend");
          out.println(myid);
        friendnum=Integer.parseInt(in.readLine());
         String friendname=" ";

        String friendjtalkno,friendip,friendstatus,picinfo,email,infos;
        do{friendname=in.readLine();
            if(friendname.equals("over"))  break;
            friendnames.add(friendname);
            friendjtalkno=in.readLine();
            friendjtalk.add(new Integer(friendjtalkno));
            friendip=in.readLine();
            friendips.add(friendip);
          friendstatus=in.readLine();
          status.add(friendstatus);
          picinfo=in.readLine();
          picno.add(new Integer(picinfo));
          email=in.readLine();
          friendemail.add(email);
          infos=in.readLine();
         friendinfo.add(infos);
          }while(!friendname.equals("over"));
  }catch(IOException e1){System.out.println("false");}

DefaultListModel mm=(DefaultListModel)list.getModel();

⌨️ 快捷键说明

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