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

📄 chatframe.java

📁 学生管理系统
💻 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 + -