📄 chatframe.java
字号:
/**
*ChatFrame.java
*@author weiWang
*@date 9:10 2006-3-30
*/
package com.herb.teacherclient;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class ChatFrame extends JFrame{
JPanel titlePanel=new JPanel();
JPanel chatPanel=new JPanel();
static JTextArea area=new JTextArea();
JPanel sendPanel=new JPanel();
JPanel btnPanel=new JPanel();
JPanel textPanel=new JPanel();
JPanel mainPanel=new JPanel();
static DefaultListModel listModel;
JScrollPane listScrollPane;
JList list;
JLabel titleLabel=new JLabel("Chatting",new ImageIcon("com/herb/teacherclient/icons/man.gif"),JLabel.LEFT);
JTextField msgField=new JTextField(48);
JButton sendBtn=new JButton("send",new ImageIcon("com/herb/teacherclient/icons/send.gif"));
JLabel[] imageLabel=new JLabel[14];
String who,defaultMan="所有人";
private static final String CODE4="004"; //传送聊天信息
private static final String CODE5="005"; //接收服务器返回来的聊天信息
private static final String CODE7="007"; //有客人退出的代号
public ChatFrame(){
super("讨论区");
getContentPane().setLayout(new BorderLayout(15,10));
titlePanel.add(titleLabel);
ClientPart cp=new ClientPart(CODE5);
Thread t=new Thread(cp);
t.start();
sendPanel.setLayout(new BorderLayout(5,5));
textPanel.add(new JLabel("Say:",new ImageIcon("com/herb/teacherclient/icons/say.gif"),JLabel.RIGHT));
textPanel.add(msgField);
textPanel.add(sendBtn);
sendBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
who=list.getSelectedValue().toString(); //选择要发送的对象
String msg=msgField.getText();
ClientPart cp=new ClientPart(CODE4,msg,who); //发送信息
Thread tt=new Thread(cp);
tt.start();
try{
Thread.sleep(100); //这里要休眠线程一点时间,以先获得数据
}catch(InterruptedException ex){}
ClientPart pp=new ClientPart(CODE5); //接收信息
Thread ct=new Thread(pp);
ct.start();
System.out.println("send code5");
msgField.setText("");
}
});
sendPanel.add("Center",textPanel);
JScrollPane areaScrollPane=new JScrollPane(area);
area.setEditable(false);
areaScrollPane.setPreferredSize(new Dimension(400,225));
chatPanel.add(areaScrollPane);
chatPanel.setPreferredSize(new Dimension(400,225));
chatPanel.setBorder(BorderFactory.createTitledBorder("信息面板"));
mainPanel.setLayout(new BorderLayout(10,10));
mainPanel.add("North",titlePanel);
mainPanel.add("Center",chatPanel);
mainPanel.add("South",sendPanel);
listModel=new DefaultListModel();
list=new JList(listModel);
listScrollPane=new JScrollPane(list);
listModel.addElement(defaultMan);
listScrollPane.setBorder(BorderFactory.createTitledBorder("选择发送给:"));
list.setSelectedIndex(0);
listScrollPane.setPreferredSize(new Dimension(120,160));
mainPanel.add("East",listScrollPane);
mainPanel.setPreferredSize(new Dimension(542,363));
getContentPane().add("Center",mainPanel);
getContentPane().add("East",new JLabel(""));
show();
pack();
setResizable(false);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
dispose();
}
});
}
//显示聊天内容
public static void showChatMsg(Vector v){
// System.out.println("v:"+v.toString());
String message=new String();
int z1=0,z2=0;
System.out.println("v size:"+v.size());
String[] m=new String[v.size()/2];
String[] w=new String[v.size()/2];
for(int i=0;i<v.size();i++)
if(i%2==0)
w[z1++]=v.elementAt(i).toString();
else
m[z2++]=v.elementAt(i).toString();
for(int j=0;j<v.size()/2;j++){
area.setFont(new Font("Fixedsys",Font.PLAIN,13));
message+="\n"+"@->"+m[j]+"\n "+w[j];
}
area.setText(message);
}
//新客登陆时,刷新列表
public static void updateList(String newMan){
listModel.addElement(newMan);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -