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

📄 mainwin.java

📁 1. 服务器端:(Windows平台)首先应有java环境jdk,建议采用jdk1.3。然后应有一个数据库系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
for(int p=0;p<friendnames.size();p++){
 picid=Integer.parseInt(picno.get(p).toString());
if(status.get(p).equals("1")){
     mm.addElement(new Object[]{friendnames.get(p),new ImageIcon(picsonline[picid])});}
else {
 mm.addElement(new Object[]{friendnames.get(p),new ImageIcon(picsoffline[picid])});}
     }//for
 }//connectto server
//*****************************
//以下函数无限监听好友的消息
public  void  run(){

while(true)
{
try{ for(int x=0;x<512;x++)array[x]=' ';
//创建数据报
receivePacket=new DatagramPacket(array,array.length);
              receiveSocket.receive(receivePacket);
              byte[] data=receivePacket.getData();
           String infofromip=receivePacket.getAddress().getHostAddress().toString().trim();
           index3=0;
              received=new String(data,0,data.length);
               received.trim();
            //  System.out.println("get"+received.substring(0,6));
                 String tempstr;
             int tx;
           //friend online
    if(received.substring(0,6).equals("online")){//如果有好友上线就变彩色
           tempstr=received.substring(6).trim();
           // System.out.println("str"+tempstr);
           tempgetjicq=Integer.parseInt(tempstr);
         // System.out.println("id"+tempgetjicq);
          do{  tx= Integer.parseInt(friendjicq.get(index3).toString());
          //System.out.println("tx"+tx);
          if(tempgetjicq==tx)break;
          index3++;
          }while(index3<friendjicq.size());
          friendips.setElementAt(infofromip,index3);
         // status.setElementAt(,index3);
        //System.out.println(index3);
          DefaultListModel mm3=(DefaultListModel)list.getModel();
          int  picid=Integer.parseInt(picno.get(index3).toString());
               mm3.setElementAt(new Object[]{friendnames.get(index3),new ImageIcon(picsonline[picid])},index3);
              }//end online
    //friend offline
      else  if(received.substring(0,7).equals("offline")){//如果有好友下线就变灰色
      tempstr=received.substring(7).trim();
            System.out.println("str"+tempstr);
           tempgetjicq=Integer.parseInt(tempstr);
          System.out.println("id"+tempgetjicq);
          do{  tx= Integer.parseInt(friendjicq.get(index3).toString());
          System.out.println("tx"+tx);
          if(tempgetjicq==tx)break;
          index3++;
          }while(index3<friendjicq.size());
          infofromip="null";
          friendips.setElementAt(infofromip,index3);
         // status.setElementAt(,index3);
        System.out.println(index3);
          DefaultListModel mm3=(DefaultListModel)list.getModel();
          int  picid=Integer.parseInt(picno.get(index3).toString());
               mm3.setElementAt(new Object[]{friendnames.get(index3),new ImageIcon(picsoffline[picid])},index3);

      }//end friend offline
      //someone add me as friend
      else if(received.substring(0,9).equals("oneaddyou")){
              //如果有人加我为好有,选择加还是不
      tempstr=received.substring(9).trim();
            System.out.println("str"+tempstr);
           tempgetjicq=Integer.parseInt(tempstr);
          System.out.println("id"+tempgetjicq);
  //JOptionPane.showMessageDialog(this,"收到"+tempgetjicq+"addyou","ok",JOptionPane.INFORMATION_MESSAGE);
    oneaddme.setText(tempgetjicq+"把你加为好友");
    OneAddyou.setBounds(400,300,250,200);
     OneAddyou.show();


      } //endsomeone add me as friend
  else{//否则就显示收到消息
        index4=0;
        //  String infofromip=receivePacket.getAddress().getHostAddress().toString().trim();
         do{
            String friendip=friendips.get(index4).toString().trim();
            if (infofromip.equals(friendip)){
              String nameinfo=friendnames.get(index4).toString().trim();
   JOptionPane.showMessageDialog(this,"收到"+nameinfo+"的消息","ok",JOptionPane.INFORMATION_MESSAGE);
                fromunknow=false;
                break;   }//if
               index4++;
               if(index4>=friendnames.size()){
               fromunknow=true;//收到陌生人的消息
                JOptionPane.showMessageDialog(this,"收到陌生人"+infofromip+"的消息","ok",JOptionPane.INFORMATION_MESSAGE);
               }
              }while(index4<friendnames.size());//while
               System.out.println(index4);

       };

}catch(IOException  ex){ex.printStackTrace();}
}


}//run end
//**********************
//以下创建数据报
public void CreatUDP(){
try{sendSocket=new DatagramSocket();
    receiveSocket=new DatagramSocket(udpPORT);
   // System.out.println("udp ok");
}catch(SocketException se){se.printStackTrace();System.out.println("false udp");}
}// creat udp end
//main ****************
  public MainWin(int s,String sername,int serport) {//主程序构造函数
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
       myjicq=s;
       server=sername;
       serverport=serport;
      jbInit();
      ConnectServer(myjicq);
       CreatUDP();
         findf=new FindFriend2(myjicq,server,serverport);
findf.setBounds(200,150,300,300);
         thread=new Thread(this);
         thread.start();
    }

    catch(Exception e) {
      e.printStackTrace();
    }
  }//end main*****
  /**Component initialization*/
  private void jbInit() throws Exception  {//主程序界面
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(flowLayout1);

    this.getContentPane().setBackground(new Color(132, 158, 203));
    this.setResizable(false);
    this.setSize(new Dimension(206, 420));
    this.setTitle("Frame Title");
    this.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        this_mousePressed(e);
      }
    });

  ListModel model=new NameAndPicListModel(friendnames,picsonline);
    ListCellRenderer renderer=new NameAndPicListCellRenderer();
    list=new JList(model);
    list.setBackground(new Color(255, 255, 210));
    list.setAlignmentX((float) 1.0);
    list.setAlignmentY((float) 1.0);
    list.setCellRenderer(renderer);
    list.setVisibleRowCount(7);
    list.addMouseListener(new MainWin_list_mouseAdapter(this));
    list.setSize(380,200);
    jButton1.setText("我的好友");
    jButton1.setBorderPainted(false);
    jButton1.setContentAreaFilled(false);
    jButton1.setIcon(icon1);
    jButton1.setPressedIcon(icon6);
    direct.setText("直接加友");
    direct.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        direct_mouseClicked(e);
      }
    });
    direct.addMouseListener(new MainWin_direct_mouseAdapter(this));
    direct.setToolTipText("about");
    direct.setPressedIcon(icon6);
    ok.setText("OK");
    ok.setBounds(new Rectangle(111, 89, 97, 29));
    ok.addMouseListener(new MainWin_ok_mouseAdapter(this));
    info.setMaximumSize(new Dimension(200, 100));
    info.setMinimumSize(new Dimension(200, 100));
    info.setText("你好,欢迎使用我的JAVA-icq,不过还有好多没做出来:-)");
    info.setBounds(new Rectangle(-31, 21, 353, 66));
    sendmessage.setText("发送消息");
    sendmessage.addMouseListener(new MainWin_sendmessage_mouseAdapter(this));
    getmessage.setText("接收消息");
    getmessage.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        getmessage_mousePressed(e);
      }
    });
    lookinfo.setText("查看资料");
    lookinfo.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        lookinfo_mousePressed(e);
      }
    });
    chatrecord.setText("聊天记录");
    Container dialogcon=about.getContentPane();
    about.setSize(200,200);
     Container senddiapane=senddata.getContentPane();
    dialogcon.setLayout(null);
    dialogcon.setSize(100,100);
    //senddiapane.setLayout(null);
    name.setForeground(SystemColor.activeCaption);
    name.setText("呢称");
    name.setBounds(new Rectangle(9, 44, 41, 18));
    nametext.setBounds(new Rectangle(52, 38, 90, 22));
    icq.setForeground(SystemColor.activeCaption);
    icq.setText("JAVA_ICQ");
    icq.setBounds(new Rectangle(163, 39, 64, 18));
    icqno.setBounds(new Rectangle(257, 37, 96, 22));
    send.setIcon(icon1);
    send.setText("发送");
    send.setBounds(new Rectangle(39, 219, 136, 29));
    send.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        send_mouseClicked(e);
      }
    });
    senddiapane.setLayout(null);
    cancel.setIcon(icon1);
    cancel.setText("取消");
    cancel.setBounds(new Rectangle(220, 216, 110, 29));
    cancel.addMouseListener(new MainWin_cancel_mouseAdapter(this));
    contentPane.setAlignmentX((float) 200.0);
    contentPane.setAlignmentY((float) 200.0);
    senddata.setResizable(false);
    senddata.getContentPane().setBackground(Color.lightGray);
    sendtext.setRows(10);
    sendtext.setMinimumSize(new Dimension(20, 10));
    sendtext.setMaximumSize(new Dimension(20, 10));
    sendtext.setBounds(new Rectangle(7, 71, 384, 141));
    jLabel2.setText("This is HG");
    jLabel2.setBounds(new Rectangle(20, 82, 89, 18));
    //senddiapane.setBackground(new Color(58, 112, 165));
    find.setToolTipText("");
    find.setText("查找");
    find.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        find_mouseClicked(e);
      }
    });
    getdata.getContentPane().setLayout(null);
    getdata.setSize(400,300);
    jLabel3.setText("昵称");
    jLabel3.setBounds(new Rectangle(14, 37, 41, 18));
    getfromname.setBounds(new Rectangle(56, 37, 90, 22));
    jLabel4.setText("JiCQ");
    jLabel4.setBounds(new Rectangle(164, 39, 41, 18));
    getfromjicq.setBounds(new Rectangle(224, 37, 104, 22));
    getinfo.setBounds(new Rectangle(18, 68, 325, 153));
    getok.setText("ok");
    getok.setBounds(new Rectangle(136, 240, 79, 29));
    getok.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        getok_mouseClicked(e);
      }
    });
    update.setText("更新");
    update.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        update_mouseClicked(e);
      }
    });
    delfriend.setText("删除好友");
    delfriend.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        delfriend_mousePressed(e);
      }
    });
    myinfo.setMaximumSize(new Dimension(70, 29));
    myinfo.setMinimumSize(new Dimension(70, 29));
    myinfo.setText("陌生人");
    myinfo.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        myinfo_mouseClicked(e);
      }
    });
    online.setText("上线");
    online.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        online_mouseClicked(e);
      }
    });
    hello.getContentPane().setLayout(null);
    jLabel1.setText("呢称");
    jLabel1.setBounds(new Rectangle(11, 29, 41, 18));
    helloname.setBounds(new Rectangle(52, 27, 78, 22));
    jLabel5.setText("Jicq#");
    jLabel5.setBounds(new Rectangle(148, 30, 41, 18));
    hellojicq.setBounds(new Rectangle(198, 28, 106, 22));
    jLabel6.setText("电子邮件");
    jLabel6.setBounds(new Rectangle(11, 71, 66, 18));
    helloemail.setBounds(new Rectangle(64, 69, 138, 22));
    jLabel7.setText("个人资料");
    jLabel7.setBounds(new Rectangle(14, 106, 75, 18));
    helloinfo.setBounds(new Rectangle(13, 136, 301, 101));
    jButton3.setBounds(new Rectangle(218, 65, 79, 29));
    hellook.setText("ok");
    hellook.setBounds(new Rectangle(124, 245, 79, 29));
    hellook.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        hellook_mouseClicked(e);
      }
    });
    jLabel8.setText("发送消息");
    jLabel8.setBounds(new Rectangle(14, 19, 196, 18));
    jLabel9.setText("接收消息");
    jLabel9.setBounds(new Rectangle(12, 13, 186, 18));
    OneAddyou.getContentPane().setLayout(null);
    jLabel10.setText("收到消息");
    jLabel10.setBounds(new Rectangle(7, 13, 143, 18));
    oneaddme.setBounds(new Rectangle(7, 57, 247, 18));
    addit.setText("加为好友");
    addit.setBounds(new Rectangle(19, 124, 93, 29));
    addit.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        addit_mouseClicked(e);
      }
    });
    iknow.setText("知道了");
    iknow.setBounds(new Rectangle(164, 124, 79, 29));
    iknow.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        iknow_mouseClicked(e);
      }
    });
    DirectAdd.getContentPane().setLayout(null);
    jLabel11.setText("直接添加好友");
    jLabel11.setBounds(new Rectangle(7, 19, 220, 18));
    jLabel12.setText("好友号码");
    jLabel12.setBounds(new Rectangle(11, 58, 72, 18));
    friendid.setBounds(new Rectangle(83, 53, 118, 22));
    directaddok.setText("确定");
    directaddok.setBounds(new Rectangle(89, 109, 79, 29));
    directaddok.addMouseListener(new java.awt.event.MouseAdapter() {
      public void mouseClicked(MouseEvent e) {
        directaddok_mouseClicked(e);
      }
    });
    DirectAdd.setResizable(false);
    dialogcon.add(info, null);
    dialogcon.add(ok, null);
    dialogcon.add(jLabel2, null);
    about.setSize(100,100);
    about.pack();
contentPane.add(jButton1, null);
    contentPane.add(new JScrollPane(list));


    contentPane.add(find, null);
    contentPane.add(update, null);
    contentPane.add(direct, null);
    contentPane.add(myinfo, null);
    contentPane.add(online, null);
    jPopupMenu1.add(sendmessage);
    jPopupMenu1.add(getmessage);
    jPopupMenu1.add(lookinfo);
    jPopupMenu1.add(chatrecord);
    jPopupMenu1.add(delfriend);


    senddiapane.add(send, null);
    senddiapane.add(cancel, null);
    senddiapane.add(sendtext, null);
    senddiapane.add(name, null);
    senddiapane.add(nametext, null);
    senddiapane.add(icq, null);
    senddiapane.add(icqno, null);
    senddiapane.add(jLabel8, null);
    getdata.getContentPane().add(getinfo, null);
    getdata.getContentPane().add(getok, null);
    getdata.getContentPane().add(jLabel3, null);
    getdata.getContentPane().add(getfromname, null);
    getdata.getContentPane().add(jLabel4, null);
    getdata.getContentPane().add(getfromjicq, null);
    getdata.getContentPane().add(jLabel9, null);
    hello.getContentPane().add(jLabel1, null);
    hello.getContentPane().add(helloname, null);
    hello.getContentPane().add(jLabel5, null);
    hello.getContentPane().add(hellojicq, null);
    hello.getContentPane().add(jLabel6, null);
    hello.getContentPane().add(helloemail, null);
    hello.getContentPane().add(jLabel7, null);
    hello.getContentPane().add(helloinfo, null);
    hello.getContentPane().add(jButton3, null);
    hello.getContentPane().add(hellook, null);
    OneAddyou.getContentPane().add(jLabel10, null);
    OneAddyou.getContentPane().add(oneaddme, null);
    OneAddyou.getContentPane().add(addit, null);
    OneAddyou.getContentPane().add(iknow, null);
    DirectAdd.getContentPane().add(jLabel11, null);
    DirectAdd.getContentPane().add(jLabel12, null);
    DirectAdd.getContentPane().add(friendid, null);
    DirectAdd.getContentPane().add(directaddok, null);
    senddata.pack();

⌨️ 快捷键说明

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