版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计课程设计报告题目:利用JAVA设计简单聊天对话框 专业:计算机科学与技术班级:10级(2)班姓名:*指导教师:姚老师成绩:计算机与信息工程系二0一三 年六月十二 日目录的.32.设计框架.3 .4 4. 程序清单.65. 程序运行效果.96.设计心得.107.参考文献.11在当今的信息时代,越来越多的聊天工具被应用 ,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程 等特点。使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入 式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义
2、,而且有利于软件的维护和继承。 此次课程设计的题目为简单的聊天对话框,通过巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。2. 设计框架的形成 设计一个简单的聊天对话框,单击“清除”按钮,则消息输入文本框中的信息清除掉;单击“发送”按钮,则把消息发送到信息显示框中。3.实例分析;(1)通过匿名类实现 可以通过匿名类实现“清除”按钮的事件监听,在actionPerform
3、ed方法中,当单击按钮时进行相应的处理。本例中直接调用消息输入框(jtaInput)的setText方法,设置输入框的文本为空,以达到清除输入框中已输入文本的目的,代码如下所示。 jbClear.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)jtaInput.setText(""););(2)通过Action实现在“发送”按钮的事件处理中,通过设置其行为(Action)来实现。首先,需要定义一个Action,实现其actionPerformed方法。本例中,发生
4、事件时能通过调用自定义的sendMessage方法来发送消息。 对于“发送”按钮,可调用setAction方法设置有按钮事件发生时的行为,代码如下所示。 Action sendMessage=new AbstractAction()public void actionPerformed(ActionEvent e)sendMessage(); jbSend.setAction(sendMessage);(3.)处理键盘事件 设置文本输入框在用户按下“Enter”键时发出消息,代码如下所示。 jtaInput.getInputMap().put(KeyStroke.getKeyStroke(&q
5、uot;ENTER"),"send");jtaInput.getActionMap().put("send",sendMessage);(a)调用getInputMap方法得到输入框的InputMap,再用该InputMap的put方法实现键盘的绑定,具体可参见InputMap类的使用说明。本例中,绑定的键为“Enter“键。 (b) 调用getActionMap方法得到输入框的ActionMap,再用ActionMap的put方法设置输入框的行为,这里为调用sendMessage的Action。(4.)组件的相互控制 在sendMessage
6、方法中,调用聊天信息显示框的insert方法插入最新收到的信息。本例中,从名字输入框和消息输入框中得到该信息。实际程序中应结合网络编程,从不同的主机得到。最后用setText方法传入空的字符串来清空用户输入的消息。代码如下所示。 private void replaceMessage()String message=jtfName.getText()+"> "+jtaInput.getText()+"n"jtaChat.insert(message,jtaChat.getDocument().getLength(); 4.程序清单:import j
7、ava.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=
8、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);jtaInput=new JTextAre
9、a(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);jbClear.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)jtaInput.setText("&
10、quot;););Action sendMessage=new AbstractAction()public void actionPerformed(ActionEvent e)replaceMessage();jtaInput.getInputMap().put(KeyStroke.getKeyStroke("ENTER"),"send");jtaInput.getActionMap().put("send",sendMessage);jbSend.setAction(sendMessage);jbSend.setText(&qu
11、ot;发送");this.setSize(400,200);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);private void replaceMessage()String message=jtfName.getText()+"> "+jtaInput.getText()+"n"jtaChat.insert(message,jtaChat.getDocument().getLength();jtaInput.setText("
12、;");public static void main(String args)new ActionDemo(); 5.程序运行效果如图所示单击“发送”按钮,则把消息发送到信息显示框中。单击“清除”按钮,则消息输入文本框中的信息清除掉;6.设计心得我花费了近一个多星期的时间,查阅了许多相关的资料,终于把这个Java聊天对话框程序基本实现了。在设计的过程中了解到自己的知识还是比较有限,回顾起此次java设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期日子里,可以说的上是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本
13、上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正掌握这门技术,也提高了自己的独立思考的能力。在设计的过程中遇到问题,可以说得上是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互动仪式链视角下轮岗教师专业引领的困境与破解
- 青春期父母预备手册-随笔
- 2025年湘教新版必修1物理下册月考试卷含答案
- 2025年外研版三年级起点九年级历史下册阶段测试试卷含答案
- 智能客服系统合作开发合同(2篇)
- 2025年外研版三年级起点九年级地理上册阶段测试试卷
- 2025年广东建设职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年安徽警官职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析
- 2025年安徽国防科技职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年宁波城市职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 人教版高中生物学新旧教材知识差异盘点
- 四年级四年级下册阅读理解20篇(附带答案解析)经典
- 大连高新区整体发展战略规划(产业及功能布局)
- 国有资产管理法律责任与风险防控
- 未婚生子的分手协议书
- 变更监事章程修正案范例
- 北京小客车指标租赁协议五篇
- 输液室运用PDCA降低静脉输液患者外渗的发生率品管圈(QCC)活动成果
- YY/T 0681.2-2010无菌医疗器械包装试验方法第2部分:软性屏障材料的密封强度
- 烟气管道阻力计算
- 城乡环卫一体化保洁服务迎接重大节日、活动的保障措施
评论
0/150
提交评论