?? findfriend2.java
字號:
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(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); }//jbInit結束 //以下是關閉本窗口 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");} }//find2_mouseClicked結束 //顯示查找好友菜單 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}//FindFriend2類定義結束
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -