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

📄 群聊界面.java

📁 我用JAVA写的QQ程序
💻 JAVA
字号:
/*
 * 群聊界面.java
 *
 * Created on 2007年5月20日, 下午9:38
 */

package 客户端程序包;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.Socket;
import java.util.Date;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

/**
 *
 * @author  王绿春   南昌大学软件学院045班
 */
public class 群聊界面 extends javax.swing.JFrame implements Runnable {
    
    /** Creates new form 群聊界面 */
    public 群聊界面(Socket soc,String GroupN,String QQNum) {
        initComponents();
        this.setBounds(450,220,540,450);
        this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE);
        socket=soc;
        GroupNumber=GroupN;
        QQNumber=QQNum;
        Groups=new Vector(30,3);
        new SendAndReceive(socket,"RequestGroupMember"+GroupNumber).SendMessage();
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        消息框 = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        发送框 = new javax.swing.JTextArea();
        jScrollPane3 = new javax.swing.JScrollPane();
        成员列表 = new javax.swing.JList();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setBackground(new java.awt.Color(255, 255, 255));
        消息框.setColumns(20);
        消息框.setEditable(false);
        消息框.setRows(5);
        jScrollPane1.setViewportView(消息框);

        发送框.setColumns(20);
        发送框.setRows(5);
        jScrollPane2.setViewportView(发送框);

        jScrollPane3.setViewportView(成员列表);

        org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                    .add(jScrollPane2)
                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 330, Short.MAX_VALUE))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 14, Short.MAX_VALUE)
                .add(jScrollPane3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 167, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
                .add(20, 20, 20)
                .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
                    .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 311, Short.MAX_VALUE)
                    .add(jPanel1Layout.createSequentialGroup()
                        .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 172, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                        .add(16, 16, 16)
                        .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 123, Short.MAX_VALUE)))
                .addContainerGap())
        );

        jButton1.setText("\u804a\u5929\u8bb0\u5f55");
        jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton1MouseClicked(evt);
            }
        });

        jButton2.setText("\u53d1\u9001");
        jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButton2MouseClicked(evt);
            }
        });

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .add(layout.createSequentialGroup()
                .add(38, 38, 38)
                .add(jButton1)
                .add(110, 110, 110)
                .add(jButton2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 80, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(222, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 12, Short.MAX_VALUE)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jButton1)
                    .add(jButton2))
                .addContainerGap())
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton1MouseClicked
// TODO 将在此处添加您的处理代码:
        群聊天记录 GroupMessageRecord=new 群聊天记录(socket,GroupNumber);
        GroupMessageRecord.setVisible(true);
        new Thread(GroupMessageRecord).start();
    }//GEN-LAST:event_jButton1MouseClicked

    private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton2MouseClicked
// TODO 将在此处添加您的处理代码:
        String Message=发送框.getText();
        System.out.println(Message);
        //消息框.append(" "+QQNumber+"\n"+"  "+Message+"\n");
        发送框.setText("");
        Date date = new Date();
        String Time = date.toLocaleString();
        System.out.println("时间长度"+Time.length());
        System.out.println("系统时间:"+Time);
        new SendAndReceive(socket,"GroupMessage"+GroupNumber+QQNumber+Time.length()+Time+Message).SendMessage();
           
        
    }//GEN-LAST:event_jButton2MouseClicked
    public void SetMemberList(){
        try{
          
           StringTokenizer St=new StringTokenizer(好友界面.RequireByGroups,"#");
           while(St.hasMoreTokens()){
              IsnotReceived=false;
              String GroupInfor=St.nextToken();
              String icon=GroupInfor.substring(1,2);
              String Number=GroupInfor.substring(2);
              ImageIcon image=new ImageIcon("picture/"+icon+".gif");
              JLabel label=new JLabel(Number,image,JLabel.LEFT);
              Groups.addElement(label);
              
          }
        }catch(NullPointerException e){
              System.out.println("错在这里呀! 猪头!+猪头");
        }  
          
          this.成员列表.setListData(Groups);
          this.成员列表.setCellRenderer(new MyListCellRenderer());
    }
    public String FindNickName(String number){
       String Number=number;
       String Nic=number;
       try{
              
              StringTokenizer St=new StringTokenizer(好友界面.Friend,"#");
              
              while(St.hasMoreTokens()){
                  String s=St.nextToken().substring(1);
                  String Num=s.substring(1,10);
                  if(Num.equals(Number)){
                      Nic=s.substring(10);
                  }
               }
              
              
              
          }catch(NullPointerException e){
            
          }
       return Nic;
   }
    public void run() {
        this.addWindowListener(new WindowAdapter(){
           public void windowClosing(WindowEvent e){
               
               好友界面.GroupMessage.RemoveMember(GroupNumber);
               System.out.println("运行了这里!");
               dispose();
               
               
           }
       });
       
       while(true){
           if(IsnotReceived){
               SetMemberList();
           }
           int i=0;
           for(i=0;i<好友界面.GroupMessage.GetLength();i++){
               //System.out.println(好友界面.GroupMessage.GetMember(i).GetSender());
               
               //System.out.println(i);
               //System.out.println(好友界面.GroupMessage.GetLength());
               //System.out.println("abc"+好友界面.GroupMessage.GetMember(i).GetMessage());
               if(好友界面.GroupMessage.GetMember(i).GetSender().equals(GroupNumber)){
                   if(!好友界面.GroupMessage.GetMember(i).GetMessage().equals("")){
                        String Speaker=好友界面.GroupMessage.GetMember(i).GetMessage().substring(0,9);
                        String Message=好友界面.GroupMessage.GetMember(i).GetMessage().substring(9);
                        String TimLen=Message.substring(0,2);
                        int TimeLength=Integer.valueOf(TimLen);
                        消息框.append(" "+FindNickName(Speaker)+" "+Message.substring(2,TimeLength+2)+"\n"+"  "+Message.substring(TimeLength+2)+"\n");
                        好友界面.GroupMessage.GetMember(i).SetMessage("");
                        break;
                   }
                   //else{
                      // break;
                  // }
               }
           }
       }
    }
    /**
     * @param args the command line arguments
     */
    
    
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JTextArea 发送框;
    private javax.swing.JList 成员列表;
    private javax.swing.JTextArea 消息框;
    // 变量声明结束//GEN-END:variables
    private Socket socket=null;
    private String GroupNumber=null;
    private String QQNumber=null;
    private String FMessage=null;
    private boolean IsnotReceived=true;
    private Vector Groups=null;
}

⌨️ 快捷键说明

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