基于JAVA SWING结合链表的水果超市管理系统

学习是我快乐

发布日期: 2019-12-18 09:34:19 浏览量: 139
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

一、任务介绍

1.1 任务描述

在水果超市中,有着各种各样的水果,为了便于管理,会将水果信息记录在水果超市管理系统中进行统一管理,通过系统可以方便地实现对水果信息的增删改查操作。其中,水果信息包括水果编号、水果名称、水果单价和计价单位等。本任务要求使用所学GUI知识,编写一个水果超市管理系统,水果超市管理系统共包括系统欢迎界面和超市货物管理界面两个界面,在系统欢迎界面通过单击“进入系统”按钮,进入超市货物管理界面,在货物管理界面就可以对水果信息实现具体的操作。例如:每当有新水果运送到超市时,就需要系统管理人员在系统中增加新水果的信息,如果超市中的水果没有了就删除该水果信息,或者数量价格等需要变更时进行修改,这些操作都可以在管理系统中完成。

UML类图

运行结果

登录界面

主界面

添加水果-1

添加水果-2

修改水果-1

修改水果-2

1.2 任务目标

  • 学会分析“水果超市管理系统”任务的实现思路

  • 根据思路独立完成“水果超市管理系统”的源代码编写、编译和运行

  • 掌握正则表达式来判定数字键或者数据是否合法

  • 掌握Java异常处理机制

  • 掌握ArrayLsit集合类的使用

  • 熟练掌握Swing包(JTextField控件、JButton控件和JTable控件)的使用,以及常用布局方式的使用

1.3 界面实现思路

登入界面: 创建login类实现界面使用BorderLayout布局。实现ActionPerformed接口中的actionPerformed方法,该方法中创建超市货物管理界面,当点击按钮时实现窗口跳转。【通过构造一个JavaJF继承JPanel实现,以及通过Image类对象结合ImageIO类的静态方法read()实现插入图片 image = ImageIO.read( File)】

管理界面: 根据实验要求,创建FruitManage类实现界面使用GridBagLayout布局。

1.4 增实现思路

通过FruitDAO中的isExist(String)方法遍历链表所有节点,判断输入的表编号是否存在 (返回值为trun),编号存在是不增加结点,且不更新增加JTable中的信息。当编号不存在时(flase),增加链表结点,且更新JTable中的信息,并显示在窗口。

1.5 改实现思路

点击所需要修改的行时在第二行文本框显示该信息,并通过键盘输入修改选定水果的信息,其中若修改水果的编号则为无效操作,即修改的编号不返回。当修改非编号属性时返回修改结果输出显示在表中,并找到链表中该节点且修改该结点的信息。

1.6 删实现思路

点击选中所需要删除的水果的编号将选中的水果编号显示在删除行的文本框中实现,点击删除更新显示表格中的数据,并且删除链表中该节点。

二、实现代码及运行结果

UML

login.java

FruitManage.java

FruitDAO.JAVA

MyComamdListener.java

Fruit.java

Police.java

三、总结或感悟

3.1 错误总结

  • 采用链表增加结点时,判断出重复项后再次添加该结点添加成功情况

  • 删除结点后在窗口表格中删除,但链表中得结点依旧存在

  • 修改节点时将结点编号改成已存在的结点出现修改成功现象

  • 采用网格布局时组件间无法设置间隔

  • 无法在登入界面显示图片

3.2 错误分析及解决

  • 由于采用链表存放信息,采用循环遍历结点信息,当结点中的信息存在时,跳出提示框,但判断下次输入结点时,遍历未从头开始遍历

  • 只更新窗口表格信息而未删除链表中的结点

  • 由编号不可更改的前提下,不将编号输入框信息返回值窗口表格以及链表中

  • 更换布局(GridBagLayout)设置组件间的间隔

  • 利用继承JPanel写painnt方法,该方法利用ImageIO类的read方法导入图片

3.3 总结感悟

  • 本次实验复习第五章继承的相关知识,第六章的接口的实现,第七章异常处理是一次比较全面的实验。通过复习面向接口编程使程序有更好的封装性

  • 熟悉掌握了GridBagLayout布局,该布局使组件有更好的可视性

  • 利用java中的Vector(数据集合)传参至JTable中,具有更加灵活的特性

  • 学习WindowAdapter适配器的用法,当触发事件接口有很多抽象方法时利用事件适配器重写需要使用的方法即可,而不需要实现接口中所有的方法

  • 了解MVC结构的使用,利用模型存储数据,利用视图为模型提供数据显示的对象,利用控制器处理用户的交互操作

上传的附件 cloud_download Java高级实验4.rar ( 434.13kb, 15次下载 )

发送私信

6
文章数
1
评论数
最近文章
eject