中琅软件教程网

首页搜索登录
首页业界网页平面多媒体程序数据库办公工具服务器系统网络安全站长认证壁纸
加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

java开发自己的QQ聊天系统

[日期:2013-12-03] 作者: 来源: [字体: ]

5.3开发自己的QQ聊天系统

5.3.1源程序

5.3.1.1    ActionDemo.Java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

//控件的相互控制与消息传递

public class ActionDemo extends JFrame{

    JTextField jtfName;  //名字输入域

    JTextArea jtaChat;  //显示聊天信息

    JTextArea jtaInput;  //输入消息

    JButton jbSend;  //发送消息按钮

    JButton jbClear;  //清除输入消息域

 

    public ActionDemo(){

      super("控件的相互控制");  //调用父类构造函数

      Container container=this.getContentPane();  //得到容器

      JPanel p=new JPanel();  //初始化一个面板

      jtfName=new JTextField(10);  //初始化名字输入域

      p.add(new JLabel("主题:Write Once, Run Anywhere.    "));  //增加聊天题标签

      p.add(new JLabel("昵称"));  //增加昵称标签

      p.add(jtfName);  //增加名字输入域

        container.add(p,BorderLayout.NORTH);  //在容器上增加面板

        jtaChat=new JTextArea();  //初始化信息显示文本框

container.add(new JScrollPane(jtaChat),BorderLayout.CENTER);  //在容器上增加信//息显示文本框

      Box box=new Box(BoxLayout.X_AXIS);  //初始化一个Box

      jtaInput=new JTextArea(3,20);  //初始化消息输入域

      jbSend=new JButton();  //初始化发送按钮

      jbClear=new JButton();  //初始化清除按钮

      jbClear.setText("清除");  //设置按钮文本

      box.add(new JScrollPane(jtaInput));  //增加消息输入域

      box.add(jbClear);  //增加按钮

      box.add(jbSend);

      container.add(box,BorderLayout.SOUTH);  //在容器上增加box

      jbClear.addActionListener(new ActionListener(){  //清除按钮事件处理

        public void actionPerformed(ActionEvent e){

            jtaInput.setText("");  //点击清除按钮时清除输入域的信息

        }

      });

 

      Action sendMessage = new AbstractAction() {  //发送消息Action

      public void actionPerformed(ActionEvent e){

          replaceMessage();  //更新消息显示框

        }

      };

      jtaInput.getInputMap().put(KeyStroke.getKeyStroke("ENTER"),"send");  //键盘事件处理,按受回车事件

      jtaInput.getActionMap().put("send",sendMessage);  //回车时的处理(调用发送消息Action)

      jbSend.setAction(sendMessage);  //设置命令为发送消息

      jbSend.setText("发送");  //设置按钮文本

        setSize(400,200);  //设置窗口尺寸

        setVisible(true);  //设置窗口可视

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗口时退出程序

    }

 

    private void replaceMessage(){

      String message=jtfName.getText()+"> "+jtaInput.getText()+"\n";  //得到消息文本

      jtaChat.insert(message,jtaChat.getDocument().getLength());  //插入消息到显示域未端

      jtaInput.setText("");  //清空输入消息域

    }

 

  public static void main(String[] args){

      new ActionDemo();

  }

}

5.3.1.2                源程序运行结果:

 

 

5.3.2源程序揭秘

5.3.2.1 源程序介绍

    该程序是一个类似聊天软件的小例子,当用户写上昵称,在输入框输入信息点击发送按钮时,就会把信息发送到显示框。

5.3.2.2 源程序变量解析:

    jtfName:名字输入棫。

    jtaChat:显示聊天信息。

    jtaInput:输入消息。

    jbSend: 发送消息按

    jbClear: 钮清除消息域。

    container:容器。

    p:一个面板。

    box:一个Box实例。

5.3.2.3 源程序函数解析:

ActonDemo():初始化窗口。

replaceMessage():把输入框的信息显示到显示框,并把输入框的信息清除。

5.3.2.4 程序段解析:

Box box=new Box(BoxLayout.X_AXIS);

这段代码初始化一个Box,并且设置这个Box的布局方式是水平布局的。

jtaInput.getInputMap().put(KeyStroke.getKeyStroke("ENTER"),"send"); 

jtaInput.getActionMap().put("send",sendMessage);

    这段代码的作用是使窗口接受回车事件,窗口接受到回车事件之后就会调用sendMessage()函数,把输入框的信息显示到显示框,并把输入框的信息清除。

关键词:QQ  聊天 

收藏 推荐 打印 | 录入:blue1000 | 阅读:
最新图文
本文评论   查看全部评论 (2)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 2 楼
* 匿名 发表于 2016/12/25 13:56:09
http://www.blue1000.com/bkhtml/c185/2010-01/66880p8.htm 2017年度团委工作计划 http://www.135995.com/show/13022.html 2017年学校团委工作计划 http://www.135995.com/show/13018.html
第 1 楼
* 匿名 发表于 2016/12/24 13:50:38
http://www.blue1000.com/bkhtml/c185/2010-01/66880p8.htm 小学音乐教师工作计划 http://www.135995.com/show/4084.html 教师关爱留守儿童工作计划 http://www.135995.com/show/3996.html