`
唐木白
  • 浏览: 20160 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

关于Java程序设计的思考——事件监听模式

阅读更多

第一次上了关于事件监听模式的课之后,就开始使用了这种模式来编写Netalk 客户端,以前的方法继续扩展非常困难,类之间的耦合越来越高,代码也变得混乱。

 

事件模式就是定义一个事件监听器(MsgListener)的接口,再编写类来继承界面上所使用的组件(JTree、DefaultMutableTreeNode等),并实现事件监听器接口,而通信线程所收到的信息都作为事件,调用MsgListener中的onMsg()的方法来处理。

 

这样使通信线程与聊天界面之间的通信变为单向调用。

但第一次使用这种方法时还是跳入了另一个死圈,想到了事件监听器接口,却没细究如何使用。而是让UI类实现了事件监听器接口,这样可以基本实现功能,也可以继续扩展,但是代码还是集中在UI类中,处理各种信息的代码也使得程序很臃肿。

 

通信线程收到服务器的信息并解析后(避免花费大量时间在事件监听器队列遍历的过程中,某些信息只需要某个监听器来响应),传递给UI的信息是多样的,虽然传递的都是字符串。

这些消息都可以放在一个Msg对象中。界面上响应信息的组件也是不一样的。定义自定义的组件类  class ……extends (组件类) emplements MsgListener,在根据对应的功能重写onMsg(Msg msg)方法。然后将构建的MsgListener对象添加到线程中的事件监听器队列中。这样通信线程只需要调用MsgListener中的onMsg(Msg msg)的方法就可以。

这样可以使程序更灵活,降低类之间的耦合度,也使程序更容易扩展。

0
0
分享到:
评论

相关推荐

    java程序GUI设计——计算器界面

    【Java GUI设计——基于Swing实现计算器界面】 Java Swing 是Java平台上用于构建图形用户界面(GUI)的一个组件库,它提供了丰富的控件和强大的布局管理器来创建复杂的窗口应用程序。在这个实验中,我们将通过Swing...

    java课程设计实例——java源代码

    **:入门级别的程序,展示如何编写第一个Java程序,了解基本的语法结构。 3. **数据类型与变量**:包括基本数据类型(如整型、浮点型、字符型、布尔型)以及引用数据类型,变量的声明、初始化和使用。 4. **运算符与...

    仓库管理源代码——JAVA程序设计

    《仓库管理源代码——JAVA程序设计》是华中科技大学一项四年的课程设计项目,旨在让学生通过实际编程经验,深入理解仓库管理系统的设计与实现。在这个项目中,学生将使用Java编程语言,结合数据库技术,构建一个完整...

    java GUI 事件监听

    本篇文章将围绕一个具体的示例——绘制一个棋盘并实现按钮与面板的事件监听,来深入探讨相关的Java GUI编程技巧。 #### 二、核心知识点 ##### 1. 导入必要的包 在编写Java GUI程序时,通常需要导入以下几个关键包...

    javaswing课程设计——课程表

    在这个“javaswing课程设计——课程表”项目中,学生或初学者将学习如何利用Swing来开发一个功能齐全的课程表应用。 首先,我们需要了解Java Swing的基本使用。Swing是基于事件驱动模型的,也就是说,用户在界面上...

    Java大学简明教程——实例程序设计

    Java大学简明教程——实例程序设计,这是一份专为初学者和进阶者准备的Java编程学习资源,尤其在实战应用方面具有很高的价值。它包含了一系列精心设计的实例,旨在帮助读者深入理解和掌握Java语言的核心概念以及...

    Java课程设计报告——计算器

    在本Java课程设计中,学生赵亮以"计算器"为主题,构建了一个功能类似于Windows系统自带的计算器程序。这个项目旨在深化对Java编程语言的理解,并实际应用面向对象编程思想。通过这个设计,学生不仅锻炼了编程技能,...

    JAVA课程设计——记事本程序

    在本JAVA课程设计项目中,我们专注于开发一个记事本程序,它涵盖了基本文本编辑器的所有核心功能。这个记事本程序用Java编程语言编写,展现了Java在创建桌面应用程序方面的强大能力。以下是对该程序各个关键知识点的...

    Java课程设计报告——桌面日历.doc

    Java课程设计报告——桌面日历是一项实践项目,旨在利用Java编程语言开发一款便捷的桌面日历应用程序。这个项目的核心目标是结合NetBeans开发环境,创建一个具有记事、日期查询和日程提醒功能的个性化日历系统,以...

    java 图形界面程序——科研申报

    本项目“java 图形界面程序——科研申报”就是这样一个基于Java Swing的GUI应用,它旨在为科研申报提供一个友好的交互平台。Java Swing是Java Foundation Classes (JFC)的一部分,提供了丰富的组件库来构建桌面应用...

    Java课程设计——计算器

    在本Java课程设计项目中,我们关注的主题是创建一个计算器应用程序。这个项目旨在帮助学习者深入理解Java编程语言,特别是涉及到用户界面设计、事件处理、控制流以及算法实现等核心概念。通过构建一个计算器,我们...

    JAVA课程设计——连连看

    在本项目中,"JAVA课程设计——连连看"是一个基于Java编程语言开发的连连看游戏。这个项目展示了Java在游戏开发中的应用,特别是在图形用户界面(GUI)和算法设计方面的运用。下面将详细阐述其中涉及的关键知识点: ...

    Android监听——回调模式与观察者模式

    在Android开发中,回调模式和观察者模式是两种常见的事件处理机制,它们在软件设计模式中扮演着重要的角色,主要用于实现组件之间的通信。本文将详细探讨这两种模式,并结合Android环境进行解析。 首先,我们来理解...

    移动应用程序设计基础——点菜单列表实现.zip

    以上就是关于移动应用程序设计基础——点菜单列表实现的知识点介绍。通过学习和实践这些内容,开发者可以有效地在Android应用中创建交互性强、用户体验良好的菜单列表。在实际开发过程中,不断探索和积累经验,将有...

    JAVA 课程设计 ——ATM课程设计

    程序设计上,采用了8个类,其中1个主类和7个辅助类。辅助类作为内部类,用于实现ATM的各种功能。使用内部类减少了对象创建的次数,简化了代码管理。界面布局借助NetBeans,利用其图形化工具设置控件属性,降低了界面...

    JAVA课程设计——图书管理系统

    【Java课程设计——图书管理系统】是一项典型的面向对象编程实践,主要使用Java语言来构建一个客户端/服务器(C/S)架构的软件应用。在这个系统中,Java的强项——跨平台性和丰富的类库得到了充分的利用,以实现高效...

    java课程设计——烟花

    5. **事件监听**:为了响应用户的交互,如启动或停止烟花秀,开发者需要设置事件监听器,处理键盘、鼠标等输入设备的事件。 6. **多线程**:为了实现烟花的同时绽放和随机分布,多线程技术可能被应用。每个烟花的...

    JAVA程序设计课程作业——标准计算器的实现报告.doc

    该文档是关于JAVA程序设计课程的一份作业报告,主要任务是实现一个标准的计算器程序。这份报告由电信06XX班的王XX、郭XX和陈X共同完成,旨在通过编写计算器程序来加深对JAVA语言的理解,提升编程技能,并锻炼团队...

    Java小程序——山区果园

    【Java小程序——山区果园】是一款基于Java GUI(图形用户界面)技术开发的应用程序,主要针对初学者设计,旨在帮助他们理解和实践Java编程语言中的GUI编程。这个小程序通过模拟山区果园的场景,提供了一个互动的...

Global site tag (gtag.js) - Google Analytics