📄 群聊界面.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 + -