findanswer.java

来自「个人编写的即时网络通信软件」· Java 代码 · 共 171 行

JAVA
171
字号
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.*;
import java.net.*;
public class FindAnswer extends JFrame implements ActionListener
{    
    private JLabel Label1=new JLabel("您要查找的朋友如下列表:");
    private JButton viewButton=new JButton("查看资料");
    private JButton addFriendButton=new JButton("加为好友");
    private JButton deleteButton=new JButton("关闭");
    
    private JScrollPane aJScrollPane=new JScrollPane();
//    private JPopupMenu menu=new JPopupMenu();
//    private JMenuItem lookinfo=new JMenuItem("查看消息");
//    private JMenuItem addnewfriend=new JMenuItem("加为好友");
    private BufferedReader in;
    private PrintWriter out;
    private Vector aVector=new Vector();
    private Person aPerson;
    private DefaultListModel listModel;
    private JList aJList;
    private String myqqno;
 //   private  String itsnickname;
 //   private String itsqqno;
    private DatagramPacket sendPacket,receivePacket;
    private DatagramSocket sendSocket,receiveSocket;
    private int udpPort=5000;
 //   private int sendPort=5001;
    public FindAnswer(BufferedReader a1,PrintWriter a2,Vector a3,String a4)
    {
        in=a1;
        out=a2;
        aVector=a3;
        myqqno=a4;
        this.setTitle("查询结果显示");
        this.setBounds(100,100,400,300);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   //    menu.add(lookinfo);
   //     menu.add(addnewfriend);
        Container c=this.getContentPane();
        c.setLayout(new BorderLayout());
        c.add(Label1,BorderLayout.NORTH);
        
    //    aVector.add(new Object[ ]{new ImageIcon("C:/Program Files/Java/jdk1.5.0_06/java新程序/fwgQQ/picture/1.jpg"),"帐号        昵称        性别        来自何处"});
   //     aVector.add(new Object[ ]{new ImageIcon("C:/Program Files/Java/jdk1.5.0_06/java新程序/fwgQQ/picture/3.jpg"),"414206204        北航青年        男        北京"});
        listModel=new DefaultListModel();
        for(int i=0;i<aVector.size();i++)
        {
            aPerson=(Person) aVector.elementAt(i);
            listModel.addElement(new Object[ ]{new ImageIcon(aPerson.getPic()),aPerson.getQqno()+"     "+aPerson.getNickname()+"     "+aPerson.getSex()+"     "+aPerson.getInfo()});
        }   
       aJList=new JList();
        aJList.setVisibleRowCount(5);
        aJList.setModel(listModel);    
  //      listModel.addElement(new Object[ ]{new ImageIcon("C:/Program Files/Java/jdk1.5.0_06/java新程序/fwgQQ/picture/3.jpg"),"414206204        北航青年        男        北京"});
        aJList.setCellRenderer(new Render());
        aJScrollPane.getViewport().add(aJList,null); 
//        aJList.addMouseListener(new java.awt.event.MouseAdapter() {
 //           public void mousePressed(MouseEvent e)
//            {
//                aJList_mousePressed(e);
 //           }
  //      });
        JPanel panel1=new JPanel();
        panel1.setLayout(new BorderLayout());
        panel1.setBorder(BorderFactory.createLineBorder(Color.black));       
        panel1.add(aJScrollPane,BorderLayout.CENTER);
        c.add(panel1,BorderLayout.CENTER);
        
        JPanel panel5=new JPanel();                
        panel5.setBorder(BorderFactory.createLineBorder(Color.black));
        panel5.add(viewButton);
        viewButton.addActionListener(this);      
        panel5.add(addFriendButton);
        addFriendButton.addActionListener(this);
        panel5.add(deleteButton);
        deleteButton.addActionListener(this);       
        c.add(panel5,BorderLayout.SOUTH);
        c.validate();
        this.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent event)
            {
               dispose();
            }
        }
        );
    }

    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==addFriendButton)
       {
            aPerson=(Person) aVector.elementAt(aJList.getSelectedIndex());
            out.println("add_friend");
            out.println(myqqno);
            out.println(aPerson.getQqno());
            String answer="";
            try {
                answer=in.readLine().trim();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            if(answer.equals("friend_have_existed_false"))
            {
                JOptionPane.showMessageDialog(this,"你已经加过此人为好友!","ok",JOptionPane.INFORMATION_MESSAGE);
            }
            if(answer.equals("add_friend_false"))
            {
                JOptionPane.showMessageDialog(this,"加友失败,原因不详!","ok",JOptionPane.INFORMATION_MESSAGE);
            }
            if(answer.equals("add_friend_succeed"))
            {
                String hisip;
                String s="oneaddyou "+myqqno;
                byte[] data=s.getBytes();
                System.out.println(s);
                aPerson=(Person) aVector.elementAt(aJList.getSelectedIndex());
                hisip=aPerson.getIp();
                JOptionPane.showMessageDialog(this,"添加好友成功!","ok",JOptionPane.INFORMATION_MESSAGE);
                
                try 
                {
                    sendSocket=new DatagramSocket();
                    System.out.println("fwg--"+sendSocket);
                    receiveSocket=new DatagramSocket(udpPort);
                    System.out.println("fwg--"+receiveSocket.getInetAddress()+":"+receiveSocket.getPort()+
                        ","+receiveSocket.getLocalAddress()+":"+receiveSocket.getLocalPort());
                    System.out.println("udp"+udpPort+"ok");
                    sendPacket=new DatagramPacket(data,s.length(),InetAddress.getByName(hisip),udpPort);
                    sendSocket.send(sendPacket);
                } catch (SocketException ex)
                {
                    ex.printStackTrace();
                    System.out.println("false udp");
                }
                catch (UnknownHostException ex1) 
                {
                    ex1.printStackTrace();
                }
                catch (IOException ex2)
                {
                    ex2.printStackTrace();
                }  
            }
       }
        else if(e.getSource()==viewButton)
       {
            aPerson=(Person) aVector.elementAt(aJList.getSelectedIndex());
            ViewInfo a=new ViewInfo(aPerson);
       }
        else if(e.getSource()==deleteButton)
        {
            this.dispose();
        }
    }
 //   void aJList_mousePressed(MouseEvent e)
 //   {
//        menu.show(this,e.getX()+20,e.getY()+50);
 //   }
    
 //   public static void main(String arg[])
 //  {
 //       FindAnswer a=new FindAnswer();
 //   }    
}

⌨️ 快捷键说明

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