`

做Swing桌面程序,该怎样将组件与业务逻辑分离?

 
阅读更多

做Swing桌面程序,该怎样将组件与业务逻辑分离?

这是一个问题。

因为没有深入学习过这方面的知识,所以自己也没有想过如何能实现这种分离。

今天有个朋友用Swing做了一个小的桌面程序,是一个简单的管理系统。

代码很复杂,主要是写的很复杂,没有逻辑和层次感,

到处是组件,到处是判断,每追加一个功能,代码就要翻来翻去找很久。

于是今天晚上自己闲来无事,简单的写了一些代码,

看是否可以将组件与业务逻辑分离开呢?

如果大侠看到了不要见笑啊~

首先,我要的是一个登录界面,

界面很简单,上面留一个JLabel的位置,输出错误提示信息用。

然后下面就是 用户名和密码 的输入框。

见下图:

登录界面

待用户输入用户名和密码后,点击登录按钮,根据用户名和密码进行验证。

如果用户名和密码为空,则报错。

如果填写了用户名和密码,则认为登录成功,由于只是演示,就没有真正的去实现如何验证。

现在代码的结构是这样的。

|--com

|--bzwm

|--testp

|--common

|--event

|--frame

|--listener

如上图,主要由4个包。

common包,放一些通用的类,可以有一些工具类等等。

这次我将EventMgr.java放在common包下,用来管理事件。

event包,放入每个动作的event,

我先定义了一个抽象类BaseEvent.java

然后是本次要实现的功能的事件:LogonEvent.java

frame包,是一些画面的实现类。

本次登录用的LoadFrame.java放在这个包下。

listener包,是放具体的业务逻辑实现类的。

首先定义接口 IListener.java

画面实现 IListener 接口,方便回调回主画面,方便根据业务逻辑处理结果来重画组件。

然后定义接口 IService.java

业务逻辑类要实现 IService 接口,

我在这个接口中定义了两个方法,

第一个方法,检查用户的输入数据是否正确,或者说操作是否正确,

第二个方法,根据用户的输入和事件,来完成业务逻辑处理。

本次登录用的逻辑类 LogonService.java 实现了IService 接口。

好,结构介绍完了,

来看代码。

1.IListener.java

2.IService.java

3.LoadFrame.java

主画面,程序的入口,实现了IListener接口

4.LogonService.java

登录事件的逻辑处理类

实现了IService接口

5.EventMgr.java

管理事件

6.BaseEvent.java

抽象类,抽象的事件

这其中的设计还很有待商榷

7.LogonEvent.java

用户登录事件

根据上述代码,基本功能完成了。

也许会感觉为这一点功能写这么多类不值得,

但代码会清晰一点,虽然设计上,比如类的构造上还不够合理,

我也没思考太多,想到这些就写出来了。

不过这样还有一个好处,比如说,你想给登录事件加输出log的功能,

那么比较简单,

只要写一个类,实现了IService即可。(因为log写在本地文件里,所以不用回调回主画面)

然后在LoadFrame.java中的构造方法改一下就OK了。

下面是输出log用的service

8.LogService.java

接着,改 LoadFrame.java类。

只写出改的部分,它的构造方法:

这样,把代码拷贝下来,

重新运行下,就出现log了。

这只是登录的功能,

如果还要完成注册的功能,

则还是一样的步骤,

写一个Dialog类,继承JDialog,实现IListener接口,

定义一个RegEvent.java继承BaseEvent.java,

写一个RegService类,实现IService接口,

总之把相应包下面,加入自己的实现,

然后将监听还是注册到EventMgr里就可以实现了。

好了。欢迎交流,谢谢!

分享到:
评论

相关推荐

    SWING桌面程序开发

    SWING桌面程序开发

    JavaSwing桌面程序开发

    【Java Swing 桌面程序开发】 Java Swing 是Java平台上的一个库,它提供了丰富的用户界面组件,用于构建桌面应用程序。Swing 提供了一套轻量级的UI组件,可以创建美观且功能丰富的图形用户界面(GUI)。本章将详细...

    java Swing桌面程序开发课件

    Java Swing 桌面程序开发 Java Swing 是一种开发桌面程序的技术。在本节中,我们将学习如何开发界面程序,这要比前面学习的程序有意思的多。 Swing 桌面程序开发的知识点 1. Swing 是什么?:Swing 是一门开发...

    java桌面程序swing demo实例

    在"java桌面程序swing demo实例"中,我们可以学习到如何使用Swing来创建一个基本的Java桌面程序。以下是一些核心的知识点: 1. **JFrame**: 这是Swing中的主窗口类,通常每个Swing应用程序都会有一个或多个JFrame。...

    JavaSwing小程序

    4. **模型-视图-控制器(MVC)**:Swing遵循MVC设计模式,将数据模型、用户界面(视图)和业务逻辑(控制器)分离,这有利于代码的维护和扩展。例如,JTable和DefaultTableModel的组合就是MVC模式的一个应用,模型...

    swing各种组件举例

    学习Swing,不仅要知道如何创建和配置这些组件,还要理解如何将它们有效地组织起来,以创建功能完整、用户体验良好的桌面应用程序。通过实际的编程练习,结合本文所提及的知识点,你将能更好地掌握Swing组件的用法。

    Swing用户界面组件

    Swing是Java编程语言中用于...通过理解和熟练使用这些Swing组件,开发者可以创建出功能强大且用户友好的Java桌面应用程序。Swing的强大之处在于它的灵活性和可定制性,使得开发者可以根据需求自由构建复杂的用户界面。

    java swing 桌面程序 创建选项卡

    java swing 桌面程序 创建选项卡 标签显示选项卡被显示情况。

    Swing组件教案及示例程序

    这个“Swing组件教案及示例程序”压缩包文件显然包含了关于如何使用Swing来创建丰富的桌面应用程序的教学材料和实际示例。Swing提供了一套组件,如按钮、文本框、菜单等,使得开发者能够构建出美观且功能丰富的应用...

    第 Swing桌面程序开发PPT学习教案.pptx

    Swing桌面程序开发是Java编程领域的一个重要部分,主要用于构建基于桌面的应用程序。在Swing中,`JFrame`类是构建用户界面的核心组件,它充当了程序的主要窗口。以下是对Swing桌面程序开发和`JFrame`窗口类的详细...

    javaswing组件大全.pdf

    Java Swing 组件大全 Java Swing 是 Java 语言中一个功能强大且广泛使用的图形用户界面...Java Swing 组件库是一个功能强大且广泛使用的图形用户界面组件库,提供了大量的组件和工具,用于构建复杂的桌面应用程序。

    SWING用户界面组件

    Swing提供了一系列的组件,如按钮、文本框、标签、文本区域等,使得开发者可以方便地构建功能丰富的桌面应用程序。 在给出的代码中,`NumberSort` 类继承自 `JFrame`,这是Swing中的顶级容器,用于承载所有的GUI...

    swing各个组件实例演示

    Java Swing 是Java GUI(图形用户界面)库,用于构建桌面应用程序。它是在早期AWT(Abstract Window Toolkit)基础上发展起来的,提供了更为丰富的组件和更好的可定制性。本教程将深入探讨Swing组件的实例应用,帮助...

    语言程序设计资料:第14章 Swing桌面程序开发.ppt

    【Swing 桌面程序开发】Swing是Java中用于构建桌面应用程序用户界面的库,它是Java Foundation Classes (JFC)的一部分。在本章中,我们将深入学习Swing的相关知识,逐步掌握如何利用Swing开发功能丰富的桌面应用。 ...

    java swing 远程桌面程序

    Java Swing 远程桌面程序是一种基于Java编程语言的桌面应用程序,它允许用户通过网络连接远程控制另一台计算机的桌面环境。在这个项目中,开发者利用了开源库jrdesktop来实现远程桌面的功能。Java Swing是Java标准版...

    swing组件介绍(一)

    5. **模型-视图-控制器(MVC)架构**:Swing组件遵循MVC设计模式,其中组件的行为(控制器)与显示(视图)是分离的,数据(模型)独立于两者。这种设计使得代码更易于维护和扩展。 6. **可定制性**:Swing组件高度...

    常用Swing组件一览表

    Swing 是 Java 编程语言中的一组图形用户界面(GUI)组件,它们提供了丰富的用户界面元素,帮助开发者快速构建桌面应用程序。Swing 组件可以分为五大类:顶层容器、中间容器、特殊容器、基本组件和不可编辑组件。 ...

    JFC SWING—JAVA 基础类组件集

    Swing 是 JFC 的一部分,提供了一套丰富的组件库,使得开发者能够创建美观且功能强大的桌面应用程序。在本文中,我们将深入探讨 JFC Swing 的核心概念、组件以及如何使用它们。 首先,理解 JFC 是关键。Java ...

    Java_Swing程序设计

    本教程将深入探讨Java Swing程序设计的核心概念、组件、布局管理和事件处理。 在Java Swing中,组件是构成用户界面的基本单元。例如,JButton、JLabel、JTextField等都是常见的组件类型。这些组件可以独立使用,也...

Global site tag (gtag.js) - Google Analytics