基于Java的超市水果管理系统_技术分享 - 基于JAVA SWING结合链表的水果超市管理系统...
一、任务介绍
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结构的使用,利用模型存储数据,利用视图为模型提供数据显示的对象,利用控制器处理用户的交互操作
基于Java的超市水果管理系统_技术分享 - 基于JAVA SWING结合链表的水果超市管理系统...相关推荐
- sql 拆分_技术分享 | 基于分布式中间件的SQL改造指南
原创作者: 孙正方 4月12日,GOPS全球运维大会在深圳隆重召开,全球运维大会是国内第一个运维行业大会,爱可开源社区在基础架构及DevOps解决方案专场分享了<基于分布式中间件的SQL改造指南 ...
- 基于python的搜索引擎论文_技术分享 - 基于python构建搜索引擎系列——(四)检索模型...
构建好倒排索引之后,就可以开始检索了. 检索模型有很多,比如向量空间模型.概率模型.语言模型等.其中最有名的.检索效果最好的是基于概率的BM25模型. 给定一个查询Q和一篇文档d,d对Q的BM25得分 ...
- 银行客户用户画像_技术分享 | 基于数据中台的银行客户画像体系构建
背景 1.金融消费行为的改变,企业无法接触到客户 80后.90后总计3.4亿人口,日益成为金融企业主要的消费者,但是他们的金融消费习惯正在改变,他们不愿意到金融网点办理业务,不喜欢被动接受金融产品和服 ...
- java最长公共子序列_技术分享 | 最长公共子序列在比对工具的应用
即使如何1 在实际工作中,我们常常要对输出的文本和数据进行比对:以取证大师为例,取证大师导出的取证结果数据量很容易达到上万条.这类数据特点除了数量级大外,其实数据结构很相近.即使我们以无以伦比的细致和 ...
- java restful接口开发实例_实战:基于Spring Boot快速开发RESTful风格API接口
写在前面的话 这篇文章计划是在过年期间完成的,示例代码都写好了,结果亲戚来我家做客,文章没来得及写.已经很久没有更新文章了,小伙伴们,有没有想我啊.言归正传,下面开始,今天的话题. 目标 写一套符合规 ...
- java生成sm4算法的对称密钥_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...
原标题:技术分享丨这是一篇简单的小科普--什么是对称加密算法?(下) 大家好~我是贾正经,又到了干货满满的技术分享趴啦~ 上期我们讲解了对称加密算法的小知识,并介绍了国密算法中SM4算法的原理. 本期 ...
- java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始
java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...
- java录排名怎么写_面试官:Java排名靠前的工具类你都用过哪些?
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 推荐:https://www.xttblog.com/?p=5158 在Java ...
- java 工作3年水平_有着4年java工作经验,应该达到什么样的水平?
四年Java工作经验已经不短了,应该要有比较高的技术水准. 1.集合 几乎是面试必问的内容,问的基本是底层实现原理,实现类的优缺点. 2.设计模式 23种设计模式中重点研究常用的十来种就可以了,面试中 ...
- java带参数的构造方法_崤云说 | JAVA面向对象
点击上面"蓝字"关注我们 今天的崤云说,是研发部的周浩宇为大家带来一篇JAVA技术分享 内容介绍 u 构造方法 1.1 构造方法介绍 在开发中经常需要在创建对象的同时明确对象的属性 ...
最新文章
- Vue3的响应式原理解析
- 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)
- oracle 052 题库更新,OCP题库升级,新版052考试题及答案整理-18
- java中字节码_聊聊Java的字节码
- PHP怎么接收字符串,求大神救命!!php接收到是空的字符串
- 【WP开发】JSON数据的读与写
- POJ 3069 Saruman's Army (贪心)
- Jmeter性能测试流程
- 统计学---方差分析
- 苹果结构体系不匹配_为什么苹果手机Id总是不匹配?????
- 参加2022 年第四届齐鲁工业大学(山东省科学院)与山东师范大学ICPC 大学生程序设计竞赛的总结
- ios开发之使用bundle来管理资源文件
- android开发教程 电驴资源下载地址分享
- mysql基于ssm的自习室座位管理系统 毕业设计源码221118
- 台式计算机中的CPU指的是,电脑硬件认识之什么是电脑的CPU(cpu详细介绍)
- MongoDB操作内嵌文档
- Android SELinux 的认知以及 init 的相关知识,Linux 环境利用这2个模块进行白名单测试 -- 架构分析
- nexus安装详细过程(附安装包和下载地址)与nexus简介
- vue使用百度搜索接口实现下拉搜索效果
- Spring捕获AOP抛出的异常