专栏首页lonelydawn的前端猿区基于java swing的设备管理系统

基于java swing的设备管理系统

一.系统介绍

一个简易的设备管理系统,包含了管理员登录注册、设备录入、设备状态管理功能,具体状态有购买时、正在运行、正在修理和已报废。

二.开发环境

开发环境:jdk          运行环境:jvm

运行平台:无限制        编辑器:eclipse

语言:java            工具:swing

数据库:mysql

三.数据库设计

manager表 (管理员信息,主要用于登录、注册)

equipment表 (记录设备信息)

e_buy表 (记录购买的设备信息)

e_run表 (记录正在运行的设备信息)

e_scrap表 (记录报废的设备信息)

e_repair表 (记录修理的设备信息)

四.系统结构设计

本系统采用两层系统架构模型,view视图层负责界面的表示、采集信息传递给dao数据处理层、并从dao层接收数据更新界面,dao数据处理层负责信息的接收、处理和返回

1.view视图层

StartFrame

负责登录、注册界面的显示

包含name、pwd文本输入框和login(regist)、exit按钮

当点击login(regist)按钮时,检测name、pwd中数据是否为空,如果不为空,则将数据传递到StartDao中处理数据;

当regist成功时,跳转入login界面

当login成功时,进入ManageFrame界面

当点击exit按钮时,系统退出

ManageFrame

框架的content panel为JTabbedPane,其有5个选项卡:

(1)equipment负责所有设备的名称、运行状态的显示和状态管理,状态有①无状态 ②run ③repair ④scrap     

当点击切换状态的时候,会弹出相应对话框,记录对应状态所需要登记的信息Info

(2)buy负责登记购买的设备信息

(3)running负责显示正在运行的设备信息

(4)repair负责显示正在修理的设备信息

(5)scrap负责显示已报废的设备信息

选项卡中的equipment和buy界面由ManageFrame负责创建,对应方法为createEquipmentPanel()和createBuyPanel(),通过返回自定义的JPanel匿名内部类创建

选项卡中的running、repair、scrap界面分别是InfoRunPanel、InfoRepairPanel、InfoScrapPanel类的实例,这些类继承自抽象类InfoPanel,在抽象类中定义抽象方法getHeaders()、getTableData()获取JTable表头、数据对象,由其子类重写对应的方法;定义具体方法createScrollPane()负责创建JScrollPane可滚动面板装载createTable()创建的JTable对象,createSelectButton()负责创建搜索按钮

2.dao数据处理层

StartDao

包含方法login和regist

login方法,检测用户输入的用户名是否存在、密码是否正确,因为有“account not exists”,“incorrect password”和“success”三种状态,所以返回状态类型设置为String

regist方法,登记用户名和密码,状态有success、fail两种,所以返回状态类型设置为boolean

ManageDao

包含equipment、buy、run、repair、scrap信息的增删改查

查询方法中获取的数据,由Vector容器打包后返回

InfoRepairDao、InfoRunDao、InfoScrapDao 继承自抽象类AbstractInfoDao

包含方法查询、有条件查询、无条件查询,有条件查询是在初始化获取数据库中所有对应信息时调用,有条件查询是在输入查询条件后获取符合条件的数据集时调用

2.util工具包

ComponentUtil 包含自定义一些常用swing组件

ConnectionUtil 数据库连接类

DatabaseXmlParser 解析db.xml,获取数据库配置信息

DateChooser 包含日期选择控件

2.bean javabean 封装各种对象

五、系统运行演示(主要事件流)

(1) 注册、登录

  注册

  登录

(2) 录入购买的设备信息

  输入设备信息

  在equipment中查看设备

(4) 管理设备状态

  例:设置状态为run

(5) 查看设备状态

  输入panda,select

  输入E450,select

六、参考文献

《设计模式》 清华大学出版社 2011年10月第1版 刘伟 胡志刚 郭克华

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Ubuntu配置lamp环境

    ubuntu有个系统命令apt-get十分好用,很多插件和依赖用这个命令都可以一步到位安装。 先安装apache,输入如下命令: sudo apt-get i...

    lonelydawn
  • JDBC的泛化设计

    在mysql数据库中建立如下数据库及表结构作测试使用: create database market; use market; create table cl...

    lonelydawn
  • 酷炫的progressbar(上限可大于100%)

    ? 引用 <link rel="stylesheet" type="text/css" href="./index.css"> <div id="progre...

    lonelydawn
  • 探秘Tomcat——从一个简陋的Web服务器开始

    前言:   无论是之前所在实习单位小到一个三五个人做的项目,还是如今一个在做的百人以上的产品,一直都能看到tomcat的身影。工作中经常遇到的操作就是启动和关闭...

    JackieZheng
  • Kafka系列3:深入理解Kafka消费者

    上面两篇聊了Kafka概况和Kafka生产者,包含了Kafka的基本概念、设计原理、设计核心以及生产者的核心原理。本篇单独聊聊Kafka的消费者,包括如下内容:

    王金龙
  • Kafka系列3:深入理解Kafka消费者

    上面两篇聊了Kafka概况和Kafka生产者,包含了Kafka的基本概念、设计原理、设计核心以及生产者的核心原理。本篇单独聊聊Kafka的消费者,包括如下内容:

    王金龙
  • 一天一大 leet(判断二分图)难度:中等-Day20200716

    如果我们能将一个图的节点集合分割成两个独立的子集 A 和 B,并使图中的每一条边的两个节点一个来自 A 集合,一个来自 B 集合,我们就将这个图称为二分图。

    前端小书童
  • SAP Spartacus的user id

    get返回的Observable,一旦被调用subscribe后,会触发tap操作,取出user detail:

    Jerry Wang
  • python socket 编程之三:长

    长连接:开启一个socket连接,收发完数据后,不立刻关闭连接,可以多次收发数据包。

    py3study
  • HTML5 canvas drawImage() 方法记录

    Internet Explorer 9、Firefox、Opera、Chrome 以及 Safari 支持 drawImage() 方法。 注释:Interne...

    黒之染

扫码关注云+社区

领取腾讯云代金券