qqmainframe.java
上传用户:hongdaled
上传日期:2007-10-03
资源大小:680k
文件大小:6k
源码类别:

ICQ/即时通讯

开发平台:

Java

  1. package client;
  2. import java.awt.BorderLayout;
  3. import java.awt.Choice;
  4. import java.awt.Color;
  5. import java.awt.Component;
  6. import java.awt.Container;
  7. import java.awt.Frame;
  8. import java.awt.Graphics;
  9. import java.awt.Panel;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.awt.event.ItemEvent;
  13. import java.awt.event.ItemListener;
  14. import java.awt.event.MouseAdapter;
  15. import java.awt.event.MouseEvent;
  16. import java.awt.event.MouseListener;
  17. import java.io.FileOutputStream;
  18. import java.io.IOException;
  19. import java.io.ObjectInputStream;
  20. import java.io.ObjectOutputStream;
  21. import java.net.Socket;
  22. import java.util.ArrayList;
  23. import java.util.HashMap;
  24. import java.util.HashSet;
  25. import java.util.Properties;
  26. import java.util.TreeSet;
  27. import javax.swing.DefaultListModel;
  28. import javax.swing.JButton;
  29. import javax.swing.JFrame;
  30. import javax.swing.JLabel;
  31. import javax.swing.JList;
  32. import javax.swing.JPanel;
  33. import javax.swing.JScrollPane;
  34. public class qqmainframe {
  35. JFrame f;;
  36. Panel sp = new Panel();
  37. public static HashMap set = new HashMap();
  38. HashMap set1 = new HashMap();
  39. ObjectOutputStream oos;
  40. ObjectInputStream ois;
  41. JPanel p = new JPanel();
  42. JPanel jp2 = new JPanel();
  43. JPanel jp3 = new JPanel();
  44. Choice cc = new Choice();
  45. JButton jb = new JButton("群发");
  46. JButton jb1 = new JButton("退出");
  47. // JButton jb2=new JButton("退出");
  48. JScrollPane p1;
  49. Container c;
  50. qq_client vvv;
  51. String nam;
  52. int port;
  53. String ip;
  54. int port1;
  55. Socket so;
  56. DefaultListModel listModel = new DefaultListModel();
  57. JList jl = new JList(listModel);
  58. String sss;
  59. public qqmainframe(Socket soc,final ObjectOutputStream oos,ObjectInputStream ois,String nam1, String ip2, final int port,int port2) throws IOException {
  60.        this.oos=oos;
  61.        this.ois=ois;
  62.        this.nam=nam1;
  63.        this.ip=ip2;
  64.        this.port1=port2;
  65.        this.port=port;
  66.        this.so=soc;
  67.        f=new JFrame(nam);
  68.         cc.add("我在线上");
  69.         cc.add("隐身的我");
  70.         cc.add("离线的我");
  71.         cc.setSize(4, 17);
  72.        p.setSize(200, 350);
  73.       p1=new JScrollPane(jl);
  74.       p.add(jl);
  75.     // c=f.getContentPane();
  76.      // c.add(p);
  77.     
  78.     
  79.       
  80.       
  81.         jp2.add(cc);
  82.      
  83.         jp3.add(jb);
  84.         jp3.add(jb);
  85.         jp3.add(jb1);
  86.           jl.setBackground(Color.cyan);
  87.           jl.setSize(250,540);
  88.          f.setSize(500,600);
  89.          f.setVisible(true);
  90.          f.add(jp2,BorderLayout.NORTH);
  91.        f.add(jl,BorderLayout.CENTER);
  92.        f.add(jp3,BorderLayout.SOUTH);
  93.      
  94.     
  95.         f.setSize(100,400);
  96.         f.setVisible(true);
  97.      
  98.        serverthread stre=new serverthread(); 
  99.     stre.start();
  100.        Thread t=new yonghuThread();
  101.        serverthread.name=nam;
  102.        serverthread.port=port1;
  103.  t.start();
  104.  
  105.   jb.addActionListener(new ActionListener(){
  106. public void actionPerformed(ActionEvent arg0) {
  107. try {
  108. vvv= new qq_client(ip ,port,"群聊");
  109. } catch (IOException e) {
  110. e.printStackTrace();
  111. }
  112. }
  113.       
  114.       
  115.     });
  116.      jb1.addActionListener(new ActionListener(){
  117. @Override
  118. public void actionPerformed(ActionEvent arg0) {
  119. // TODO Auto-generated method stub
  120. System.exit(0);
  121. }
  122.       
  123.      }
  124.      );    
  125.  
  126.    
  127.  
  128.        
  129.        jl.addMouseListener(new MouseAdapter() {
  130. @Override
  131. public void mouseClicked(MouseEvent arg0) {
  132. // TODO Auto-generated method stub
  133. String name=String.valueOf(jl.getSelectedValue());
  134.   
  135. String ss=set.get(name).toString();
  136. String[] arr=ss.split(":");
  137. System.out.println(arr[1]);
  138.    try {
  139.  System.out.println(arr[1]);
  140.       qq_client q1=new qq_client(arr[1].substring(1,arr[1].length()),Integer.parseInt(arr[2]),name);
  141. } catch (NumberFormatException e) {
  142. // TODO Auto-generated catch block
  143. e.printStackTrace();
  144. } catch (IOException e) {
  145. // TODO Auto-generated catch block
  146. e.printStackTrace();
  147. }
  148. }
  149.        });
  150.        
  151.        cc.addItemListener(new ItemListener(){
  152. public void itemStateChanged(ItemEvent e) {
  153. TreeSet hs=new TreeSet();
  154.   
  155. try {
  156. switch(cc.getSelectedIndex()){
  157. case 0:
  158.  
  159. hs.add("A"+nam);
  160. hs.add("B"+ip);
  161.        hs.add("C"+port1);
  162. oos.writeObject(hs);
  163. break;
  164. case 1:hs.add("*"+nam);
  165.      
  166. oos.writeObject(hs); break;
  167. case 2:  System.out.println("hllowoue");
  168. hs.add("?"+nam);
  169. oos.writeObject(hs);  break;
  170. }catch (IOException e1) {
  171. // TODO Auto-generated catch block
  172. e1.printStackTrace();
  173.  
  174. }
  175. }
  176. });
  177.       
  178.      
  179.         
  180.        
  181.     
  182.          
  183.        }
  184. class yonghuThread extends Thread {
  185. public void run() {
  186. try {
  187. while (true) {
  188.                      
  189. Object oo = ois.readObject();
  190. // Object ooo=ois.readObject();
  191. ArrayList al=(ArrayList)oo;
  192. HashMap f=new HashMap();
  193. String[] str=al.get(0).toString().split(":");
  194. if(str.length==3){
  195. f.put(str[0],al.get(0).toString());
  196. for(int j=1;j<al.size();j++){
  197. str=al.get(j).toString().split(":");
  198. f.put(str[0],al.get(j).toString());
  199. }
  200. set=f;
  201. // set1=(HashMap)ooo;
  202. System.out.println(f);
  203. Object[] arr = set.keySet().toArray();
  204. listModel.removeAllElements();
  205. //listModel.removeAllElements();
  206. for (int i = 0; i < arr.length; i++) {
  207. listModel.addElement(arr[i].toString());
  208. }
  209. }
  210. }
  211. } catch (IOException e) {
  212. // TODO Auto-generated catch block
  213. e.printStackTrace();
  214. } catch (ClassNotFoundException e) {
  215. // TODO Auto-generated catch block
  216. e.printStackTrace();
  217. }
  218. }
  219. }
  220. public static void main(String s) {
  221. }
  222. }