?? 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); }//以下是關閉本窗口 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 infotry{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 jicqnoint 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 databaseint 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 + -