精华内容
下载资源
问答
  • java点餐系统源码
    2022-04-12 21:32:43

    Java实现的餐厅点餐系统源码Java点餐系统Java点餐系统Java网上订餐系统Java在线订餐系统

    public Swingtest002() {
    		// 设置标题
    		setTitle("请登陆");
    		// 绝对布局
    		setLayout(null);
    		// 定义一个容器
    		Container c = getContentPane();
    		// 创建"用户名:"标签
    		JLabel jl1 = new JLabel("用户名:");
    		// 创建文本框
    		final JTextField jtf1 = new JTextField();
    		// 创建"密码:"标签
    		JLabel jl2 = new JLabel("密码:");
    		// 创建密码框
    		final JPasswordField jpf1 = new JPasswordField();
    		// 设置密码字符为*
    		jpf1.setEchoChar('*');
    		// 创建"提交"按钮
    		JButton jb1 = new JButton("提交");
    		// 创建"重置"按钮
    		JButton jb2 = new JButton("重置");
    		
    		// 当用户名为"mr",密码为"mrsoft"时点击"提交"按钮弹出"登录成功"提示对话框
    		jb1.addActionListener(new ActionListener() {
     
    			@Override
    			public void actionPerformed(ActionEvent e) {
     
    				String  name=(String)jtf1.getText().trim();
    				String  password=new String(jpf1.getText().trim());
    				String sql="select * from user where name='"+name+"' and pass='"+password+"'";
    			System.out.println("name"+name+"password"+password);
    				// TODO Auto-generated method stub
    				try {
    					ResultSet rs=st.executeQuery(sql);
    					if (rs.next()) {
    						JOptionPane.showMessageDialog(null, "登陆成功!");
    						this.setVisible(false);//关闭当前的窗体
    					
    						MainFrame  mainframe=new MainFrame();
    					
    						
    						
    					} else if (jtf1.getText().trim().length() == 0 || new String(jpf1.getPassword()).trim().length() == 0) {
    						JOptionPane.showMessageDialog(null, "不能为空!");
    					} else {
    						JOptionPane.showMessageDialog(null, "错误");
    						// 清零
    						jtf1.setText("");
    						jpf1.setText("");
    					}
    				} catch (HeadlessException e1) {
    					// TODO Auto-generated catch block
    					e1.printStackTrace();
    				} catch (SQLException e1) {
    					// TODO Auto-generated catch block
    					e1.printStackTrace();
    				}
     
    			}
     
    			private void setVisible(boolean b) {
    				// TODO Auto-generated method stub
    				
    			}
    		});

     

     

     

     

     

     

     

     

    更多相关内容
  • Java点餐系统项目源码 Java点餐系统项目源码 Java点餐系统项目源码 Java点餐系统项目源码 Java点餐系统项目源码 Java点餐系统项目源码...
  • java餐桌点餐系统源码 Table of Contents iOS系统 放大模式 iphone6以后, 4.7/5.5寸手机, 可以选择放大模式 4.7 放大模式 分辨率变为(1136 x 640) 正常模式(1334 x 750) 5.5 放大模式 分辨率变为(1125 x 2001) 正常...
  • 该资源为一套完整的点餐系统源码,前台为Bootstrap框架, 后台框架为SSH, 数据库使用mysql,可以管理餐馆所有业务,包括每日的营收数据, 月度营收数据, 餐桌信息管理,菜谱信息管理以及订单信息管理, 真正实现餐馆...
  • 基于SpringBoot和微信小程序的点餐系统,适用于在校生的课程设计和毕设,可供参考。
  • "前言:我们在学习了Java各种基础知识之后,最需要做的就是学会应用,开发一些项目把所学的知识应用起来,下面的这个《无线点餐系统 server client》实战项目就是比较好的练手教程。 业务描述:本系统是基于无线点餐...
  • Java毕业设计:校园茶舍点餐系统源码 Java毕业设计:校园茶舍点餐系统源码 Java毕业设计:校园茶舍点餐系统源码 Java毕业设计:校园茶舍点餐系统源码 Java毕业设计:校园茶舍点餐系统源码 Java毕业设计:校园...
  • 系统主要分为前台和后台,其中,前台主要功能有:用户注册、用户登录、我的购物车、我的订单、商品评论、校园资讯 后台主要功能有:用户管理、商品管理、订单管理、评论管理、资讯管理等 运行环境 jdk8 tomcat8 ...
  • 主要介绍了Java实现餐厅点餐系统,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • 还有:一本小小的MyBatis源码分析书——《MyBatis源码分析》 其次:针对MyBatis面试——收整了最常见的一些问题并附上解析 1.为什么需要预编译? 2.Mybatis都有哪些Executor执行器?它们之间的区别是什么? 3....

    珍藏版(1)——Mybatis入门

    1.什么是MyBatis

    2.为什么我们要用Mybatis?

    3.Mybatis快速入门

    • 3.1 导入开发包

    • 3.2准备测试工作

    • 3.3 创建mybatis配置文件

    • 3.4 编写工具类测试是否获取到连接

    • 3.5 创建实体与映射关系文件

    • 3.6 编写DAO

    4.Mybatis工作流程

    5.完成CRUD操作

    • 5.1 增加学生

    • 5.2 根据ID查询数据

    • 5.3 查询所有数据

    • 5.4 根据id删除

    • 5.5 修改

    • 5.6 小细节

    • 5.7 Mybatis分页

    6.动态SQL

    • 6.1 动态查询

    • 6.2 动态更新

    • 6.3 动态删除

    • 6.4 动态插入

    7.入门总结

    image

    珍藏版(2)——Mybatis配置信息

    1.映射文件

    • 1.1 占位符

    • 1.2 主键生成策略

    • 1.2.1 UUID

    • 1.3 主键返回

    • 1.4 resultMap

    • 1.5 resultMap和resultType区别

    • 1.6 使用resultMap

    • 1.7 resultType和resultMap用法总结

    • 1.8 Mybatis映射文件处理特殊字符

    2.配置文件

    • 2.1 别名

    • 2.2 Mapper加载

    • 2.3 延迟加载

    • 2.4 延迟加载测试

    3.配置相关总结

    image

    珍藏版(3)——关联映射

    1.Mybatis【多表连接】

    1.1—对一

    • 1.1.1 设计表

    • 1.1.2 实体

    • 1.1.3 映射文件

    • 1.1.4 DAO层

    1.2—对多

    • 1.2.1 设计数据库表

    • 1.2.2 实体

    • 1.2.3 映射文件SQL语句

    • 1.2.4 DAO

    1.3多对多

    • 1.3.1 数据库表

    • 1.3.2 实体

    • 1.3.3 映射文件

    • 1.3.4 DAO

    2.关联映射总结

    image

    珍藏版(4)——缓存+Mapper代理+逆向工程

    1.前言

    2.Mybatis缓存

    • 2.1 Mybatis—级缓存

    • 2.2 Mybatis二级缓存

    • 2.3 Mybatis二级缓存配置

    • 2.4 查询结果映射的pojo序列化

    • 2.5 禁用二级缓存

    • 2.6 刷新缓存

    • 2.7 了解军Mybatis缓存的—些参

    3.mybatis和ehcache缓存框架整合

    • 3.1 整合jar包

    • 3.2 ehcache.xml配置信息

    • 3.3 应用场景与局限性

    • 3.3.1 应用场景

    • 3.3.2 局限性

    4.Mapper代理方式

    • 4.1 Mapper开发规范

    • 4.2 Mapper代理返回值问题

    5.Mybatis解决JDBC编程的问题

    6.Mybatis逆向工程

    • 6.1修改pom.xml文件

    • 6.2 generatorConfig.xml配置文件

    • 6.3 使用插件步骤

    • 6.4 最后生成代码

    image

    珍藏版(5)——Mybatis整合Spring

    1.Mybatis与Spring整合

    • 1.1 导入jar包

    • 1.2 创建表

    • 1.3 创建实体

    • 1.4 创建实体与表的映射文件

    • 1.5 创建Mybatis映射文件配置环境

    • 1.6 配置Spring核心过滤器【也是加载总配置文件】

    • 1.7 配置数据库信息、事务

    • 1.8 创建Dao、Service、Action

    • 1.9 JSP页面测试

    2.总结

    image

    手把手教你整合开发MyBatis-Spring项目——《深入浅出MBati技术原理与实战》

    image

    《深入浅出MBati技术原理与实战》总共是分为三大部分:

    第一部分是MyBatis基础应用,主要介绍如何高效地使用MyBatis。

    • 第1节:MyBatis 的内容简介,告诉读者MyBatis是什么,在何种场景下使用它。

    • 第2节:主要介绍MyBatis的基础模块及其生命周期,并给出实例。

    • 第3节:主要介绍MyBatis 配置的主要含义和内容。

    • 第4节:介绍 MyBatis 映射器的主要元素及其使用方法。

    • 第5节:介绍动态SQL,助你轻松应对大部分的SQL场景。

    image

    第二部分是MyBatis 原理,我们将深入源码去理解MyBatis的内部运行原理以及插件的开发方法和技巧。

    • 第6节:介绍 MyBatis 的解析和运行原理,我们将了解到SqlSession 的构建方法,以及其四大对象是如何工作的。

    • 第7节:在第6节的基础上着重介绍 MyBatis 的插件,这里我们将学习插件的设计原理,以及开发方法和注意的要点。

    image

    第三部分是MyBatis的实战应用,主要讲解 MyBatis的一些实用的场景。

    • 第8节:介绍MyBatis-Spring,主要讲解如何在Spring 项目中集成 MyBatis应用,帮助读者在 Spring的环境中顺利使用MyBatis。

    • 第9节:介绍 MyBatis的实用场景,精选一批典型且又常用的场景。详细解析每一个场景下,开发人员需要注意避免的一些错误和性能上的损失。

    image

    还有:一本小小的MyBatis源码分析书——《MyBatis源码分析》

    image

    image

    其次:针对MyBatis面试——收整了最常见的一些问题并附上解析

    • 1.为什么需要预编译?

    • 2.Mybatis都有哪些Executor执行器?它们之间的区别是什么?

    • 3.Mybatis中如何指定使用哪一种Executor执行器?

    • 4.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?

    • 5.# {}和${}的区别?

    • 6.模糊查询like语句该怎么写?

    • 7.在mapper中如何传递多个参数?

    • 8.Mybatis如何执行批量操作?

    • 9.如何获得生成的主键?

    • 10.当实体类中的属性名和表中的字段名不一样 ,怎么办

    • 11.Mapper 编写有哪几种方式?

    • 12.什么是MyBatis的接口绑定?有哪些实现方式?

    • 13.使用MyBatis的mapper接口调用时有哪些要求?

    • 14.最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?

    • 15.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

    • 16.简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

    • 17.Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

    • 18.MyBatis中所有标签?

    • 19.MyBatis实现一对一,一对多有几种方式,怎么操作的?

    • 20.Mybatis是否可以映射Enum枚举类?

    • 21.Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

    • 22.分页方式?

    • 23.简述Mybatis的插件运行原理,以及如何编写一个插件?

    • 24.Mybatis的一级、二级缓存?

    • 25.pageHelper原理?

    结语

    小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

    我们选择的这个行业就一直要持续的学习,又很吃青春饭。

    虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

    小编整理的学习资料分享一波!

    送给每一位想学习Java小伙伴,用来提升自己。想要资料的可以点击这里免费获取
    在这里插入图片描述

    看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

    我们选择的这个行业就一直要持续的学习,又很吃青春饭。

    虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

    小编整理的学习资料分享一波!

    送给每一位想学习Java小伙伴,用来提升自己。想要资料的可以点击这里免费获取
    [外链图片转存中…(img-xUpVUp38-1624955119356)]

    本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

    展开全文
  • Java订餐管理系统源码

    2017-11-06 15:58:45
    Java后台订餐管理系统源码,前端使用的是H-ui-admin模板
  • 完整的点菜系统+需求文档+SQL文件,部署就能直接运行 1、项目运行展示首页,自动查询目前未使用的餐桌 2、首页需求 2.1 可根据餐桌名称和餐桌的使用状态查找餐桌 2.2 点击餐桌名称,进入菜单页面占位——加入...
  • Java Swing餐厅点餐系统源码

    万次阅读 多人点赞 2019-05-25 22:55:47
    本文适合Java初级选手,主要技术是Java和MySQL。主要功能如下: ...(2)管理员可以新增套餐 ...源码有点多,不太好贴,如果需要源码,可以关注公众号【秃头哥编程】回复【餐厅点餐系统】即可获取整套源码。还可以免费...

    本文适合Java初级选手,主要技术是Java和MySQL。主要功能如下:
    (1)注册功能
    (2)管理员可以新增套餐
    (3)管理员可以管理套餐
    (4)管理员可以处理订单
    (5)管理员可以修改密码
    (6)顾客可以点餐
    (7)顾客可以查看订单信息
    (8)顾客可以修改个人信息

    下面是项目目录
    在这里插入图片描述

    源码有点多,不太好贴,如果需要源码,可以关注公众号【秃头哥编程】回复【餐厅点餐系统】即可获取整套源码。还可以免费入群为你解决问题。
    也可以直接扫码关注
    在这里插入图片描述

    下面是系统运行图
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    如果需要源码,可以关注公众号【秃头哥编程】回复【餐厅点餐系统】即可获取整套源码。还可以免费入群为你解决问题。

    展开全文
  • java餐桌点餐系统源码 扫一扫点餐系统 介绍 一套用户餐厅点餐系统,用户扫码点餐,自动打单 1.0版本(演示版本为2.0,请直接看最下面的2.0版本) 软件架构 springboot + jpa + mysql 安装教程 clone代码下来 使用...
  • android 点餐系统源码(含数据库以及服务端).rar
  • java课程设计-点餐系统源码+数据库。在老师的指导下已经整改完成项目,获得高分项目。 java课程设计-点餐系统源码+数据库。在老师的指导下已经整改完成项目,获得高分项目。 java课程设计-点餐系统源码+数据库。在...
  • Android点餐系统源码

    2018-06-28 10:38:47
    Android外卖点餐系统,包括外卖点餐的基本功能,可扩展
  • java 微信点餐系统源码+ 数据库 点餐系统 基于spring-boot
  • Java餐厅点餐系统【附源码&报告】

    千次阅读 多人点赞 2021-07-06 23:25:35
    时间太久了,数据库之类的不在了,没法打包资源上传,有粉丝想要完整代码,故更新一下。...3. 系统设计 3.1 软件功能总体设计 3.2软件功能详细设计 4. 数据库设计 4.1 逻辑结构设计 5系统实现交互图 5.1 下单...

    时间太久了,数据库之类的不在了,没法打包资源上传,有粉丝想要完整代码,故更新一下。有资源需求之类的可以直接私信或者在评论区留言,博主会进行更改。

    目录

    1. 绪论

    1.1 课题目标

    1.2 课题背景

    1.3 开发意义        

    2. 需求分析

    2.1 需求描述

    2.2 数据流图

    2.3 数据字典

    2.4 概念结构设计E-R图

    3. 系统设计

    3.1 软件功能总体设计

    3.2 软件功能详细设计

    4. 数据库设计

    4.1 逻辑结构设计

    5 系统实现交互图

    5.1 下单功能实现

    6. 完整源码

    7. 项目课题总结


    1. 绪论

    1.1 课题目标

            设计一个能够保证信息的准确性和时效性,随时通过计算机对系统进行管理,使得餐厅点餐各项信息合理传达给顾客和餐厅人员,保证具有选择就餐人数和餐桌、点餐、下单、加单、结账等功能的系统,并为餐厅点餐相关信息管理提供一种更加高效实用的管理手段,为餐厅点餐信息交流提供一种更加安全快捷的信息平台。

    1.2 课题背景

            随着当代科学社会的不断发展,我们所需要接收和处理的信息越来越多,很多东西逐渐难以通过单纯的人力劳动来解决。在信息过载的时代,由于计算机网络和人工智能的迅猛发展,越来越多的智能化设备、操作系统完成了对单调重复的劳动力的替代,使得众多行业领域的工作效率大大提高。

            现在人们的社会需求越来越大,小型餐厅的规模不断的发展扩大,菜品数量和种类也在不断地增加,和点餐有关的信息也在不断地变多。餐厅员工每天通过手写记录大量点餐信息,工作量非常的大,容错率也不高。

            传统的餐饮系统尤其是学生食堂的餐饮系统还是学生打菜的模式,依旧还是排队打菜的模式,对于消费者来说多了排队的时间,对于卖家来说过长的队伍可能会导致很多隐藏客户的流失,还有排在后面的人可能对于今天的菜品不是很了解,却又没有充足的时间挑选自己喜欢的。

            餐饮行业最终要的就是一个买家卖家相互促进的良性循环,买家付出了金钱,得到了好的服务和消费体验,才会有回购的欲望,卖家的付出得到了收获,更容易有一个良好的心态来服务客户。很多问题会出现在点餐的这个过程,那么将这个人工过程交由系统来完成,会大大提高精准度和容错率。

    1.3 开发意义        

            客户进入餐厅不再需要排队等待,只需要找到自己的位置,就可以进行点餐,所有菜品尽情翻阅,极大方便了客户的点餐环节,节省了人工服务过程,避免客户过长的等待时间产生的不耐。极大提升了客户的体验,对于卖家也就避免了可能产生的损失,省去了面对面服务的环节,只需要专心提高产品品质即可。

            ①减轻劳动强度、提高工作效率、增加餐厅点餐管理的透明度。餐厅点餐系统可以发挥计算机的强大功能,让餐厅员工从大量繁琐的手工劳动中解放出来,将单调枯燥的纸张涂写变成灵活的电子信息操作。并充分利用网络优势,加快餐厅内部各项信息的获取和传达,改善和优化餐厅各类人员的工作,使各个类群之间的工作联系紧密、井然有序、清楚明晰,大大减轻工作负担,提高工作效率,增加学生管理的透明度。

            ②降低管理成本,由于采用本系统的原因,使餐厅管理工作一改往日埋在各种表格中的被动局面,基本实现了无纸化办公,根除了很多日常管理中的浪费现象,体现出现代化餐厅点餐管理的优势。

            ③规范化管理,由于采用了计算机统计分析餐厅点餐信息,可以将错误降到最低,提高系统工作的准确率,从而餐厅点餐相关管理工作规范化。


    2. 需求分析

    2.1 需求描述

            需求分析首先要确定研究分析的对象,这里的需求分析对象有两方:买家和卖家。

            对于买家,需求是能够进行线上点餐,具体可以细化为:能够在线上获得餐品信息和进行点餐行为。买家作为消费者,都想得到更为优质的服务体验,希望能够通过较为简单顺利的操作就可以吃到满足自己口味的菜肴。这就要求系统界面能够生动形象地有效呈现出点餐的各项信息,菜品的价格、菜品的品相、可以选择就坐的餐桌的数目等情况以及加餐时简洁的操作界面。

            对于卖家,需求是能够获得买家的订单,具体可以细化为,能够线上获得买家的下单餐品,用餐桌号等订单信息。卖家即为商家,商家要能够高效地获取顾客的信息,当然是图形化界面和几何形式的信息呈现最为直接明了,通过这些,自然能够合理把控消费者的消费诉求,从而能够给出更好的服务,让顾客有更好的体验。  

    2.2 数据流图

    2.3 数据字典

    数据项

    表2-1数据项表

    数据项名

    数据项含义

    数据类型

    nu

    点餐桌号

    Char(10)

    name

    点餐菜名

    Char(10)

    桌号

    桌号

    Char(10)

    人数

    人数

    Char(10)

    总金额

    总金额

    Char(10)

    数据结构

    表2-2数据结构表

    数据结构名

    含义

    组成

    fo

    尚未完成的订单

    nu,name

    zo

    历史订单

    桌号,人数,总金额

    数据流

    表2-3数据流表

    数据流名

    说明

    数据流来源

    数据流去向

    组成

    订单

    餐品订单

    顾客

    卖家

    桌号,人数,菜品,金额,总金额

    2.4 概念结构设计E-R图


    3. 系统设计

    3.1 软件功能总体设计

    3.2 软件功能详细设计

    3.2.1 登录功能

            在JAVA控制台运行源代码,首先会弹出登录界面,在此界面中输入创建好的账号和密码即可登录进入服务系统,若输入的账号和密码与数据库中用户表内所存的账号和密码清单不匹配,则会提示是否注册该账号,注册完后系统会将账号和密码存储到数据库中,此时再登录即可进入系统界面。

    3.2.2 界面修改

            在进入服务系统后,图形界面中有“界面样式设置”和“修改界面字体”两个按钮,这两个按钮分别负责其对应的功能,选择点击“界面样式设置”按钮后会弹出各种各样的界面样式以供选择,选择点击并确认后即可完成切换界面样式。选择点击“修改界面字体”按钮后会弹出各式各样的字体样式,选择点击并确认后即可完成修改界面字体。

    3.2.3 点餐界面

            点击选择服务界面中的“点餐”按钮后进入点餐界面,浏览到心仪菜品即可点击“加单”按钮将点餐数量暂存到系统内部的数组中,再点击“下单”按钮即可完成对餐品数量的存入,之后系统会统计菜品的总价,完成结账后即可退出。

    3.2.4 结账界面

            在服务界面中选择点击“菜单”按钮,找到“支付”按钮并选择点击,如果菜单中有存入的菜品及其相应数量,则会显示账单并完成支付;如果菜单为空,则跳转到添加菜品界面,方便顾客进行点餐等一系列操作。


    4. 数据库设计

    4.1 逻辑结构设计

    zo(桌号,人数,总金额)

    fo(nu,name,bool

    表3-1 zo属性表

    属性名

    数据类型

    说明

    桌号

    Char(10)

    订单桌号

    人数

    Char(10)

    订单人数

    总金额

    Char(10)

    消费金额

    表3-2 fo属性表

    属性名

    数据类型

    说明

    nu

    Char(10)

    桌号

    name

    Char(10)

    菜名

    bool

    Char(10)

    是否完成订单


    5 系统实现交互图

    5.1 下单功能实现

    登录界面:用户输入正确信息进入系统

                                                  

    图4-1登录界面

    图4-2错误登录(1)

    图4-3错误登录(2)

    下单界面:用户选择产品下单

    结账界面:用户选择完毕进行结账

    界面定制:用户自定义界面形式

    退出功能:用户根据选择退出登录

    6. 完整源码

    package 餐厅点餐系统;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class Land {
    	private JFrame jf;
    	
    	private JPanel jp1;
    	private JPanel jp2;
    	private JPanel jp3;
    	private JPanel jp4;
    	
    	private JTextField jtf1;
    	private JPasswordField jpf1;
    	
    	private JLabel jl1;
    	private JLabel jl2;
    	
    	private JButton jb1;
    	private JButton jb2;
    	
    	public void init() {
    	jf = new JFrame("登陆");
    	
    	jp1 = new JPanel();
    	jp2 = new JPanel();
    	jp3 = new JPanel();
    	jp4 = new JPanel();
    	
    	jtf1 = new JTextField(15);
    	jpf1 = new JPasswordField (15);
    	jpf1.setEchoChar('*');
    	
    	jl1 = new JLabel("用户");
    	jl2 = new JLabel("密码");
    	
    	jb1 = new JButton("登陆");
    	jb2 = new JButton("重置");
    	
    	jf.setLayout(new GridLayout(3,1));
    	jf.add(jp2);
    	jf.add(jp3);
    	jf.add(jp4);
    	
    	jp2.add(jl1);
    	jp2.add(jtf1);
    	
    	jp3.add(jl2);
    	jp3.add(jpf1);
    	
    	jp4.add(jb1);
    	jp4.add(jb2);
    	
    	jb1.addActionListener(new ButtonListener());
    	jb2.addActionListener(new ButtonListener());
    	
    	jf.pack();
    	jf.setLocation(400, 300);
    	jf.setLocationRelativeTo(null);
    	jf.setVisible(true);
    	jf.setAlwaysOnTop(false);
    	
    }
    	
    private class ButtonListener implements ActionListener {
    	public void actionPerformed(ActionEvent event) {
    	String command = event.getActionCommand();
    		if("登陆".equals(command) && jtf1.getText().equals("123") && jpf1.getText().equals("123")) {
    				new System1().init(jtf1.getText());
    				jf.setVisible(false);
    			}
    		else if("登陆".equals(command) && jtf1.getText().equals("") && jpf1.getText().equals("")) {				
    				JOptionPane.showMessageDialog(null,"请输入用户名和密码","提示",1);				
    			}
    		else if("重置".equals(command)) {
    				jtf1.setText("");
    				jpf1.setText("");
    			}
    		else {
    				JOptionPane.showMessageDialog(null,"用户名或密码错误!","错误 ",0);
    				jtf1.setText("");
    				jpf1.setText("");
    			}
    		}
    	}
    
    public static void showMessageDialog(Component parentComponent,Object message,String title,int messageType,Icon icon) {	
    
    }
    
    public static void main(String[] args) {
    		new Land().init();
    	}
    }
    package 餐厅点餐系统;
    import java.awt.*;
    
    import javax.sql.rowset.WebRowSet;
    import javax.swing.*;
    import javax.swing.table.DefaultTableModel;
    import java.util.ArrayList;
    import java.util.Vector;
    import java.util.Calendar;
    import java.util.Date;
    import java.io.*;
    import java.net.NoRouteToHostException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.text.SimpleDateFormat;
    //事件处理包
    import java.awt.event.*;
    
    public class System1 implements ActionListener{
    //北部区域
    	JMenuBar jm1=new JMenuBar();
        private JLabel jl1;
        
    //南部区域
        private JButton jb1, jb2, jb3, jb4 , jb5;
        private JPanel jp1;    
        
    //西部区域
        private JTabbedPane jtp2;
        private JPanel jp8;
        private JButton jb6, jb7, jb8, jb9, jb10, jb11;
        
    //东部区域   
        private JPanel jp9;
        private JComboBox jcb11;
        private JLabel jl20, jl21, jl22;
        private JTextField jtf2;
        private JTable jt;
        private JScrollPane jsp;
        
        String[] jg = { "桌1", "桌2", "桌3", "桌4", "桌5", "桌6" };
        private DefaultTableModel model;
        private Vector data;
        private Vector names;
        
    //中部区域
        private JTabbedPane jtp;// 选项卡窗格
        private ImageIcon img;
        private JPanel jp2, jp3, jp4, jp5, jp6, jp7;    
        private JLabel jl2, jl3, jl4, jl5, jl6, jl7, jl8, jl9, jl10, jl11, jl12, jl13, jl14, jl15, jl16, jl17, jl18, jl19;
        private JCheckBox jcb1, jcb2, jcb3, jcb4, jcb5, jcb6, jcb7, jcb8, jcb9;
    //判断
        boolean B = true;
    //文件输出
        BufferedWriter out;
    //主框架
        JFrame jf;
     	public void init(String username) {
    	//北部区域
    		jl1 = new JLabel("*****课设餐厅欢迎您*****",JLabel.CENTER);
    		jl1.setOpaque(true);//设置背景颜色必须先将它设置为不透明的,因为默认是透明的。
    		jl1.setBackground(Color.pink);
    		Font f = new Font("楷体",Font.PLAIN,45); 
    		jl1.setFont(f);
    		jl1.setForeground(Color.BLUE);
    	    
    		JMenu menu1=new JMenu("系统设置");	
        	jm1.add(menu1);
    	    
        	JMenu menu2=new JMenu("餐厅名称字体");      
        	JMenu menu3=new JMenu("餐厅名称颜色");	        
        	JMenuItem item9=new JMenuItem("退出登录");	       	             
        	menu1.add(menu2);
        	menu1.add(menu3);
        	menu1.addSeparator();
        	menu1.add(item9);
    	//设置监听退出登录
            item9.addActionListener(new ActionListener() {	            
                @Override
                public void actionPerformed( ActionEvent e) {
                    int i=JOptionPane.showConfirmDialog(null, "是否退出登录","退出登录",JOptionPane.YES_NO_OPTION);       
                    if(i == JOptionPane.YES_OPTION) {                     	                
                    	jf.setVisible(false);
                    	new Land().init();
                    }
                }
            });
    	//菜单栏设置标题字体
            JMenuItem item1=new JMenuItem("楷体");	                
            JMenuItem item2=new JMenuItem("宋体");	                
            JMenuItem item3=new JMenuItem("黑体");	                	        
            JMenuItem item4=new JMenuItem("正文");
            menu2.add(item1);
            menu2.add(item2);
            menu2.add(item3);	       
            menu2.add(item4);
            
            item1.addActionListener(new ActionListener() {       	
            	public void actionPerformed( ActionEvent e) {
            		Font f = new Font("楷体",Font.PLAIN,45);
            		jl1.setFont(f);
                    }           
            });
            item2.addActionListener(new ActionListener() {       	
            	public void actionPerformed( ActionEvent e) {
            		Font f = new Font("宋体",Font.PLAIN,45);
            		jl1.setFont(f);
                    }           
            });
            item3.addActionListener(new ActionListener() {        	
            	public void actionPerformed( ActionEvent e) {
            		Font f = new Font("黑体",Font.PLAIN,45);
            		jl1.setFont(f);
                    }           
            });
            item4.addActionListener(new ActionListener() {        	
            	public void actionPerformed( ActionEvent e) {
            		Font f = new Font("正文",Font.PLAIN,45);
            		jl1.setFont(f);
                    }           
            });
    	//菜单栏设置标题颜色                      
            JMenuItem item5=new JMenuItem("蓝色");	                
            JMenuItem item6=new JMenuItem("红色");	                	        
            JMenuItem item7=new JMenuItem("黑色");	            
            JMenuItem item8=new JMenuItem("绿色");
            menu3.add(item5);
            menu3.add(item6);
            menu3.add(item7);	       
            menu3.add(item8);
            
            item5.addActionListener(new ActionListener() {       	
            	public void actionPerformed( ActionEvent e) {
            		jl1.setForeground(Color.BLUE);
                    }           
            });
            item6.addActionListener(new ActionListener() {        	
            	public void actionPerformed( ActionEvent e) {
            		jl1.setForeground(Color.RED);
                    }           
            });
            item7.addActionListener(new ActionListener() {        	
            	public void actionPerformed( ActionEvent e) {
            		jl1.setForeground(Color.BLACK);
                    }           
            });
            item8.addActionListener(new ActionListener() {       	
            	public void actionPerformed( ActionEvent e) {
            		jl1.setForeground(Color.green);
                    }           
            });
            
    	//南部区域
    	    jp1 = new JPanel();
    	    jb1 = new JButton("取消");
    	    jb2 = new JButton("下单");
    	    jb3 = new JButton("加单");
    	    jb4 = new JButton("结账");
    
    	//西部区域
    	    jtp2 = new JTabbedPane();
    	    jp8 = new JPanel();    	    
    	    jb6 = new JButton("热销菜式");
    	    jb7 = new JButton("小炒类");	    
    	    jb8 = new JButton("蔬菜类");	    
    	    jb9 = new JButton("主食类");	    
    	    jb10 = new JButton("甜品类");	
    	    jb11 = new JButton("饮品类");
    	    	    	    
    	//东部区域
    	    jp9 = new JPanel();
    	    jl20 = new JLabel("请选择桌号:");	    
    	    jcb11 = new JComboBox(jg);
    	    jl21 = new JLabel("请输入用餐人数:");
    	    jtf2 = new JTextField();
    	    jl22 = new JLabel("已点菜式列表:");	
    	    
    	    model = new DefaultTableModel(); // 新建一个默认数据模型
    	    data = new Vector(); // 数据行向量集,因为列表不止一行,往里面添加数据行向量,添加方法add(row)
    	    names = new Vector();// 列名向量,使用它的add()方法添加列名
    	    names.add("菜名");	
    	    names.add("价格(元)");    
    	    model.setDataVector(data,names); // 设置模型中的元素,它会自动显示在列表中
    	    jt = new JTable(model); // 用数据模型创建JTable,JTable会自动监听到数据模型中的数据改变并显示出来
    	    jsp = new JScrollPane(jt); // 用列表创建可滚动的Panel,把这个Panel添加到窗口中	   	  
    	    
    	//中部区域
    	    jtp = new JTabbedPane();
    	    
    	    img=new ImageIcon("主食类//红烧肉.jpg");//创建一个图标       
            jl2 = new JLabel(img);      
            img=new ImageIcon("主食类//红烧猪蹄.jpg");          
            jl3 = new JLabel(img);
            img=new ImageIcon("主食类//家常炒面.jpg");          
            jl4 = new JLabel(img);
            img=new ImageIcon("小炒类//家常小炒.jpg");           
            jl5 = new JLabel(img);
            img=new ImageIcon("小炒类//木须肉.jpg");          
            jl6 = new JLabel(img);
            img=new ImageIcon("小炒类//小炒圆白菜.jpg");          
            jl7 = new JLabel(img);
            img=new ImageIcon("蔬菜类//苦瓜炒蛋.jpg");           
            jl8 = new JLabel(img);
            img=new ImageIcon("蔬菜类//炒四季豆.jpg");          
            jl9 = new JLabel(img);
            img=new ImageIcon("蔬菜类//凉拌土豆丝.jpg");          
            jl10 = new JLabel(img);
            
            jl11 = new JLabel("39",JLabel.CENTER);
            jl12 = new JLabel("39",JLabel.CENTER);
            jl13 = new JLabel("39",JLabel.CENTER);
            jl14 = new JLabel("28",JLabel.CENTER);
            jl15 = new JLabel("28",JLabel.CENTER);
            jl16 = new JLabel("28",JLabel.CENTER);
            jl17 = new JLabel("18",JLabel.CENTER);
            jl18 = new JLabel("18",JLabel.CENTER);
            jl19 = new JLabel("18",JLabel.CENTER);
            
            jcb1 = new JCheckBox("红烧肉");
    	    jcb2 = new JCheckBox("红烧猪蹄");
    	    jcb3 = new JCheckBox("家常炒面");
    	    jcb4 = new JCheckBox("家常小炒");
    	    jcb5 = new JCheckBox("木须肉");
    	    jcb6 = new JCheckBox("小炒圆白菜");
    	    jcb7 = new JCheckBox("苦瓜炒蛋");
    	    jcb8 = new JCheckBox("炒四季豆");
    	    jcb9 = new JCheckBox("凉拌土豆丝");
    	    
    	    jp2 = new JPanel();	            
    	    jp3 = new JPanel();	   
    	    jp4 = new JPanel();	    
    	    jp5 = new JPanel();
    	    jp6 = new JPanel();
    	    jp7 = new JPanel();
    
    	//将面板添加到选项卡窗格上
    	    jtp.add("热销菜式", jp2);
    	    jtp.add("小炒类", jp3);
    	    jtp.add("蔬菜类", jp4);
    	    jtp.add("主食类", jp5);
    	    jtp.add("甜品类", jp6);
    	    jtp.add("饮品类", jp7);
    
    	    jtp2.add("菜式导航", jp8);
    	    
    	//设置布局	   	    
    	    jp2.setLayout(new GridLayout(9,3));
    	    jp3.setLayout(new GridLayout(9,3));
    	    jp4.setLayout(new GridLayout(9,3));
    	    jp5.setLayout(new GridLayout(9,3));
    	    jp6.setLayout(new GridLayout(9,3));
    	    jp7.setLayout(new GridLayout(9,3));
    	    jp8.setLayout(new GridLayout(15,1));
    	    jp9.setLayout(new GridLayout(6,1));	
    	    
    	    jp9.setPreferredSize(new Dimension(250, 0));   	     
    
    	//指定action 命令 
    	    jb1.addActionListener(this);
    	    jb1.setActionCommand("取消");
    	    jb2.addActionListener(this);
    	    jb2.setActionCommand("下单");
    	    jb3.addActionListener(this);
    	    jb3.setActionCommand("加单");
    	    jb4.addActionListener(this);
    	    jb4.setActionCommand("结账");	   
    	    jb6.addActionListener(this);
    	    jb6.setActionCommand("热销菜式");
    	    jb7.addActionListener(this);
    	    jb7.setActionCommand("小炒类");
    	    jb8.addActionListener(this);
    	    jb8.setActionCommand("蔬菜类");
    	    jb9.addActionListener(this);
    	    jb9.setActionCommand("主食类");
    	    jb10.addActionListener(this);
    	    jb10.setActionCommand("甜品类");
    	    jb11.addActionListener(this);
    	    jb11.setActionCommand("饮品类");
    	    
    	//添加组件
    	    jp1.add(jb1);
    	    jp1.add(jb2);
    	    jp1.add(jb3);
    	    jp1.add(jb4);
    
    	    jp2.add(jl2);
    	    jp2.add(jl3);
    	    jp2.add(jl4);
    	    jp2.add(jl11);
    	    jp2.add(jl12);
    	    jp2.add(jl13);	    
    	    jp2.add(jcb1);	   
    	    jp2.add(jcb2);	    
    	    jp2.add(jcb3);	    
    	    jp2.add(jl5);
    	    jp2.add(jl6);
    	    jp2.add(jl7);
    	    jp2.add(jl14);
    	    jp2.add(jl15);
    	    jp2.add(jl16);
    	    jp2.add(jcb4);				
    	    jp2.add(jcb5);		
    	    jp2.add(jcb6);
    	    jp2.add(jl8);
    	    jp2.add(jl9);
    	    jp2.add(jl10);
    	    jp2.add(jl17);
    	    jp2.add(jl18);
    	    jp2.add(jl19);
    	    jp2.add(jcb7);				
    	    jp2.add(jcb8);		
    	    jp2.add(jcb9);
    	    	    
    	 	jp8.add(jb6);
    	    jp8.add(jb7);
    	    jp8.add(jb8);
    	    jp8.add(jb9);
    	    jp8.add(jb10);
    	    jp8.add(jb11);
    	    
    	    jp9.add(jl20);
    	    jp9.add(jcb11);
    	    jp9.add(jl21);
    	    jp9.add(jtf2);
    	    jp9.add(jl22);
    	    jp9.add(jsp);
    	    
    	//续中部区域
    	//小炒类
    	    img=new ImageIcon("小炒类//豆角炒腊肉.jpg");      
            jl2 = new JLabel(img);      
            img=new ImageIcon("小炒类//家常小炒.jpg");          
            jl3 = new JLabel(img);
            img=new ImageIcon("小炒类//木须肉.jpg");          
            jl4 = new JLabel(img);
    	    img=new ImageIcon("小炒类//农家小炒肉.jpg");           
            jl5 = new JLabel(img);
            img=new ImageIcon("小炒类//四季豆小炒肉.jpg");          
            jl6 = new JLabel(img);
            img=new ImageIcon("小炒类//小炒牛肉.jpg");          
            jl7 = new JLabel(img);
            img=new ImageIcon("小炒类//小炒香菇黄瓜条.jpg");           
            jl8 = new JLabel(img);
            img=new ImageIcon("小炒类//小炒圆白菜.jpg");          
            jl9 = new JLabel(img);
            img=new ImageIcon();          
            jl10 = new JLabel(img);        
            
            jl11 = new JLabel("28",JLabel.CENTER);
            jl12 = new JLabel("28",JLabel.CENTER);
            jl13 = new JLabel("28",JLabel.CENTER);
            jl14 = new JLabel("28",JLabel.CENTER);
            jl15 = new JLabel("28",JLabel.CENTER);
            jl16 = new JLabel("28",JLabel.CENTER);
            jl17 = new JLabel("28",JLabel.CENTER);
            jl18 = new JLabel("28",JLabel.CENTER);
            jl19 = new JLabel("",JLabel.CENTER);
            
            jcb1 = new JCheckBox("豆角炒腊肉");
    	    jcb2 = new JCheckBox("家常小炒");
    	    jcb3 = new JCheckBox("木须肉");
    	    jcb4 = new JCheckBox("农家小炒肉");
    	    jcb5 = new JCheckBox("四季豆小炒肉");
    	    jcb6 = new JCheckBox("小炒牛肉");
    	    jcb7 = new JCheckBox("小炒香菇黄瓜条");
    	    jcb8 = new JCheckBox("小炒圆白菜");	    	    
    	    
    	    jp3.add(jl2);
    	    jp3.add(jl3);
    	    jp3.add(jl4);
    	    jp3.add(jl11);
    	    jp3.add(jl12);
    	    jp3.add(jl13);
    	    jp3.add(jcb1);				
    	    jp3.add(jcb2);		
    	    jp3.add(jcb3);
    	    jp3.add(jl5);
    	    jp3.add(jl6);
    	    jp3.add(jl7);
    	    jp3.add(jl14);
    	    jp3.add(jl15);
    	    jp3.add(jl16);
    	    jp3.add(jcb4);				
    	    jp3.add(jcb5);		
    	    jp3.add(jcb6);
    	    jp3.add(jl8);	    
    	    jp3.add(jl9);
    	    jp3.add(jl10);
    	    jp3.add(jl17);
    	    jp3.add(jl18);
    	    jp3.add(jl19);
    	    jp3.add(jcb7);				
    	    jp3.add(jcb8);
    	//蔬菜类
    	    img=new ImageIcon("蔬菜类//炒四季豆.jpg");      
            jl2 = new JLabel(img);      
            img=new ImageIcon("蔬菜类//苦瓜炒蛋.jpg");          
            jl3 = new JLabel(img);
            img=new ImageIcon("蔬菜类//凉拌土豆丝.jpg");          
            jl4 = new JLabel(img);
    	    img=new ImageIcon("蔬菜类//茄子肉末.jpg");           
            jl5 = new JLabel(img);
            img=new ImageIcon("蔬菜类//豌豆炒鸡米.jpg");          
            jl6 = new JLabel(img);
            img=new ImageIcon("蔬菜类//虾酱荷兰豆.jpg");          
            jl7 = new JLabel(img);
            img=new ImageIcon("蔬菜类//腰果玉米.jpg");           
            jl8 = new JLabel(img);
            img=new ImageIcon();          
            jl9 = new JLabel(img);
            img=new ImageIcon();          
            jl10 = new JLabel(img);        
            
            jl11 = new JLabel("18",JLabel.CENTER);
            jl12 = new JLabel("18",JLabel.CENTER);
            jl13 = new JLabel("18",JLabel.CENTER);
            jl14 = new JLabel("18",JLabel.CENTER);
            jl15 = new JLabel("18",JLabel.CENTER);
            jl16 = new JLabel("18",JLabel.CENTER);
            jl17 = new JLabel("18",JLabel.CENTER);
            jl18 = new JLabel("",JLabel.CENTER);
            jl19 = new JLabel("",JLabel.CENTER);       
            
            jcb1 = new JCheckBox("炒四季豆");
    	    jcb2 = new JCheckBox("苦瓜炒蛋");
    	    jcb3 = new JCheckBox("凉拌土豆丝");
    	    jcb4 = new JCheckBox("茄子肉末");
    	    jcb5 = new JCheckBox("豌豆炒鸡米");
    	    jcb6 = new JCheckBox("虾酱荷兰豆");
    	    jcb7 = new JCheckBox("腰果玉米");	    	    	    
    	    
    	    jp4.add(jl2);
    	    jp4.add(jl3);
    	    jp4.add(jl4);
    	    jp4.add(jl11);
    	    jp4.add(jl12);
    	    jp4.add(jl13);
    	    jp4.add(jcb1);				
    	    jp4.add(jcb2);		
    	    jp4.add(jcb3);
    	    jp4.add(jl5);
    	    jp4.add(jl6);
    	    jp4.add(jl7);
    	    jp4.add(jl14);
    	    jp4.add(jl15);
    	    jp4.add(jl16);
    	    jp4.add(jcb4);				
    	    jp4.add(jcb5);		
    	    jp4.add(jcb6);
    	    jp4.add(jl8);	    
    	    jp4.add(jl9);
    	    jp4.add(jl10);
    	    jp4.add(jl17);
    	    jp4.add(jl18);
    	    jp4.add(jl19);
    	    jp4.add(jcb7);				
    	//主食类
    	    img=new ImageIcon("主食类//红烧肉.jpg");      
            jl2 = new JLabel(img);      
            img=new ImageIcon("主食类//红烧猪蹄.jpg");          
            jl3 = new JLabel(img);
            img=new ImageIcon("主食类//家常炒面.jpg");          
            jl4 = new JLabel(img);
    	    img=new ImageIcon("主食类//金牌海鲜炒饭.jpg");           
            jl5 = new JLabel(img);
            img=new ImageIcon("主食类//糖醋排骨.jpg");          
            jl6 = new JLabel(img);
            img=new ImageIcon("主食类//新奥尔良烤翅.jpg");          
            jl7 = new JLabel(img);
            img=new ImageIcon("主食类//照烧鸡腿.jpg");           
            jl8 = new JLabel(img);
            img=new ImageIcon();          
            jl9 = new JLabel(img);
            img=new ImageIcon();          
            jl10 = new JLabel(img);        
            
            jl11 = new JLabel("39",JLabel.CENTER);
            jl12 = new JLabel("39",JLabel.CENTER);
            jl13 = new JLabel("39",JLabel.CENTER);
            jl14 = new JLabel("39",JLabel.CENTER);
            jl15 = new JLabel("39",JLabel.CENTER);
            jl16 = new JLabel("39",JLabel.CENTER);
            jl17 = new JLabel("39",JLabel.CENTER);
            jl18 = new JLabel("",JLabel.CENTER);
            jl19 = new JLabel("",JLabel.CENTER);
            
            jcb1 = new JCheckBox("红烧肉");
    	    jcb2 = new JCheckBox("红烧猪蹄");
    	    jcb3 = new JCheckBox("家常炒面");
    	    jcb4 = new JCheckBox("金牌海鲜炒饭");
    	    jcb5 = new JCheckBox("糖醋排骨");
    	    jcb6 = new JCheckBox("新奥尔良烤翅");
    	    jcb7 = new JCheckBox("照烧鸡腿");   	    
    	    
    	    jp5.add(jl2);
    	    jp5.add(jl3);
    	    jp5.add(jl4);
    	    jp5.add(jl11);
    	    jp5.add(jl12);
    	    jp5.add(jl13);
    	    jp5.add(jcb1);				
    	    jp5.add(jcb2);		
    	    jp5.add(jcb3);
    	    jp5.add(jl5);
    	    jp5.add(jl6);
    	    jp5.add(jl7);
    	    jp5.add(jl14);
    	    jp5.add(jl15);
    	    jp5.add(jl16);
    	    jp5.add(jcb4);				
    	    jp5.add(jcb5);		
    	    jp5.add(jcb6);
    	    jp5.add(jl8);	    
    	    jp5.add(jl9);
    	    jp5.add(jl10);
    	    jp5.add(jl17);
    	    jp5.add(jl18);
    	    jp5.add(jl19);
    	    jp5.add(jcb7);				
    	//甜品类
    	    img=new ImageIcon("甜品类//红豆马蹄糕.jpg");      
            jl2 = new JLabel(img);      
            img=new ImageIcon("甜品类//红糖鸡蛋.jpg");          
            jl3 = new JLabel(img);
            img=new ImageIcon("甜品类//榴莲酥.jpg");          
            jl4 = new JLabel(img);
    	    img=new ImageIcon("甜品类//芒果糯米糍.jpg");           
            jl5 = new JLabel(img);
            img=new ImageIcon("甜品类//全麦小餐包.jpg");          
            jl6 = new JLabel(img);
            img=new ImageIcon("甜品类//杂果榴莲冰.jpg");          
            jl7 = new JLabel(img);
            img=new ImageIcon("甜品类//紫薯汤圆.jpg");           
            jl8 = new JLabel(img);
            img=new ImageIcon();          
            jl9 = new JLabel(img);
            img=new ImageIcon();          
            jl10 = new JLabel(img);        
            
            jl11 = new JLabel("12",JLabel.CENTER);
            jl12 = new JLabel("12",JLabel.CENTER);
            jl13 = new JLabel("12",JLabel.CENTER);
            jl14 = new JLabel("12",JLabel.CENTER);
            jl15 = new JLabel("12",JLabel.CENTER);
            jl16 = new JLabel("12",JLabel.CENTER);
            jl17 = new JLabel("12",JLabel.CENTER);
            jl18 = new JLabel("",JLabel.CENTER);
            jl19 = new JLabel("",JLabel.CENTER);
            
            jcb1 = new JCheckBox("红豆马蹄糕");
    	    jcb2 = new JCheckBox("红糖鸡蛋");
    	    jcb3 = new JCheckBox("榴莲酥");
    	    jcb4 = new JCheckBox("芒果糯米糍");
    	    jcb5 = new JCheckBox("全麦小餐包");
    	    jcb6 = new JCheckBox("杂果榴莲冰");
    	    jcb7 = new JCheckBox("紫薯汤圆");    	    
    	    
    	    jp6.add(jl2);
    	    jp6.add(jl3);
    	    jp6.add(jl4);
    	    jp6.add(jl11);
    	    jp6.add(jl12);
    	    jp6.add(jl13);
    	    jp6.add(jcb1);				
    	    jp6.add(jcb2);		
    	    jp6.add(jcb3);
    	    jp6.add(jl5);
    	    jp6.add(jl6);
    	    jp6.add(jl7);
    	    jp6.add(jl14);
    	    jp6.add(jl15);
    	    jp6.add(jl16);
    	    jp6.add(jcb4);				
    	    jp6.add(jcb5);		
    	    jp6.add(jcb6);
    	    jp6.add(jl8);	    
    	    jp6.add(jl9);
    	    jp6.add(jl10);
    	    jp6.add(jl17);
    	    jp6.add(jl18);
    	    jp6.add(jl19);
    	    jp6.add(jcb7);				
    	//饮品类
    	    img=new ImageIcon("饮品类//补气养颜饮.jpg");      
            jl2 = new JLabel(img);      
            img=new ImageIcon("饮品类//玫瑰陈皮饮.jpg");          
            jl3 = new JLabel(img);
            img=new ImageIcon("饮品类//梅子冬瓜饮.jpg");          
            jl4 = new JLabel(img);
    	    img=new ImageIcon("饮品类//木瓜红枣饮.jpg");           
            jl5 = new JLabel(img);
            img=new ImageIcon("饮品类//苹果牛奶饮.jpg");          
            jl6 = new JLabel(img);
            img=new ImageIcon("饮品类//苹果雪梨饮.jpg");          
            jl7 = new JLabel(img);
            img=new ImageIcon("饮品类//肉桂姜糖饮.jpg");           
            jl8 = new JLabel(img);
            img=new ImageIcon();          
            jl9 = new JLabel(img);
            img=new ImageIcon();          
            jl10 = new JLabel(img);        
            
            jl11 = new JLabel("28",JLabel.CENTER);
            jl12 = new JLabel("28",JLabel.CENTER);
            jl13 = new JLabel("28",JLabel.CENTER);
            jl14 = new JLabel("28",JLabel.CENTER);
            jl15 = new JLabel("28",JLabel.CENTER);
            jl16 = new JLabel("28",JLabel.CENTER);
            jl17 = new JLabel("28",JLabel.CENTER);
            jl18 = new JLabel("",JLabel.CENTER);
            jl19 = new JLabel("",JLabel.CENTER);
            
            jcb1 = new JCheckBox("补气养颜饮");
    	    jcb2 = new JCheckBox("玫瑰陈皮饮");
    	    jcb3 = new JCheckBox("梅子冬瓜饮");
    	    jcb4 = new JCheckBox("木瓜红枣饮");
    	    jcb5 = new JCheckBox("苹果牛奶饮");
    	    jcb6 = new JCheckBox("苹果雪梨饮");
    	    jcb7 = new JCheckBox("肉桂姜糖饮");	    	    
    	    
    	    jp7.add(jl2);
    	    jp7.add(jl3);
    	    jp7.add(jl4);
    	    jp7.add(jl11);
    	    jp7.add(jl12);
    	    jp7.add(jl13);
    	    jp7.add(jcb1);				
    	    jp7.add(jcb2);		
    	    jp7.add(jcb3);
    	    jp7.add(jl5);
    	    jp7.add(jl6);
    	    jp7.add(jl7);
    	    jp7.add(jl14);
    	    jp7.add(jl15);
    	    jp7.add(jl16);
    	    jp7.add(jcb4);				
    	    jp7.add(jcb5);		
    	    jp7.add(jcb6);
    	    jp7.add(jl8);	    
    	    jp7.add(jl9);
    	    jp7.add(jl10);
    	    jp7.add(jl17);
    	    jp7.add(jl18);
    	    jp7.add(jl19);
    	    jp7.add(jcb7);				
    	    	       	  	  
    	// 展示组件	       	    
    	    jf = new JFrame("点菜系统");
    	    jf.setSize(860, 635);
    	    jf.setJMenuBar(jm1);
    	    jf.setLayout(new BorderLayout(10,0)); //组件间距	    
    	    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	  	
    	    jf.setLocationRelativeTo(null);
    	    jf.setVisible(true);
    	    	  	 	
    	    jf.add(jp1,BorderLayout.SOUTH);
    	    jf.add(jl1,BorderLayout.NORTH);	    
    	    jf.add(jtp,BorderLayout.CENTER);
    	    jf.add(jtp2,BorderLayout.WEST);
    	    jf.add(jp9,BorderLayout.EAST);
    	    	    
    	}
    	
    	//监听器
    	public void actionPerformed(ActionEvent e) {		
    	//判断哪个按钮被点击
    		switch(e.getActionCommand()) {
    		case "取消":
    			ForJCheckBox(jp2);
    			ForJCheckBox(jp3);
    			ForJCheckBox(jp4);
    			ForJCheckBox(jp5);
    			ForJCheckBox(jp6);
    			ForJCheckBox(jp7);
    			break;
    		case "下单":
    			if(B && ForJCheckBoxnum(jp9)) {					    			    
    				ForJCheckBoxStr(jp2,data,names,model,jt);
    				ForJCheckBoxStr(jp3,data,names,model,jt);
    				ForJCheckBoxStr(jp4,data,names,model,jt);
    				ForJCheckBoxStr(jp5,data,names,model,jt);
    				ForJCheckBoxStr(jp6,data,names,model,jt);
    				ForJCheckBoxStr(jp7,data,names,model,jt);					
    				jp9.add(jsp);
    				B = false;
    			}
    			else if(ForJCheckBoxnum(jp9) == false) {
    				JOptionPane.showMessageDialog(null, "请输入用餐人数", "下单错误", JOptionPane.ERROR_MESSAGE);
    			}
    			else {
    				JOptionPane.showMessageDialog(null, "您已下单,若需要点菜请点击加单按钮", "下单错误", JOptionPane.ERROR_MESSAGE);
    				ForJCheckBox(jp2);
    				ForJCheckBox(jp3);
    				ForJCheckBox(jp4);
    				ForJCheckBox(jp5);
    				ForJCheckBox(jp6);
    				ForJCheckBox(jp7);
    			}
    			break;
    		case "加单":	
    			if(B == false) {			
    				ForJCheckBoxStr(jp2,data,names,model,jt);
    				ForJCheckBoxStr(jp3,data,names,model,jt);
    				ForJCheckBoxStr(jp4,data,names,model,jt);
    				ForJCheckBoxStr(jp5,data,names,model,jt);
    				ForJCheckBoxStr(jp6,data,names,model,jt);
    				ForJCheckBoxStr(jp7,data,names,model,jt);
    				jp9.add(jsp);
    			}
    			else {
    				JOptionPane.showMessageDialog(null, "您还未下单,请先点击下单按钮", "加单错误", JOptionPane.ERROR_MESSAGE);
    				ForJCheckBox(jp2);
    				ForJCheckBox(jp3);
    				ForJCheckBox(jp4);
    				ForJCheckBox(jp5);
    				ForJCheckBox(jp6);
    				ForJCheckBox(jp7);
    			}	
    			break;
    		case "结账":
    			if(jt.getRowCount() != 0) {
    				int res = JOptionPane.showConfirmDialog(null, "是否继续操作", "结账提示", JOptionPane.YES_NO_OPTION);
    				if (res == JOptionPane.YES_OPTION) {
    					JDialog FRAME = new JDialog();//构造一个新的JFrame,作为新窗口。
    					FRAME.setSize(1000, 400);
    					FRAME.setLocation(300, 200);
    					FRAME.setBounds(new Rectangle((int) jf.getBounds().getX() + 50,(int) jf.getBounds().getY() + 50, (int) jf.getBounds().getWidth(), (int) jf.getBounds().getHeight()));											   
    					FRAME.add(jsp,BorderLayout.NORTH);
    					JButton button = new JButton("结账");
    					FRAME.add(button,BorderLayout.WEST);
    					button.addActionListener(new ActionListener(){
    						public void actionPerformed(ActionEvent e){
    							FRAME.dispose();
    						}
    					});
    					try {
    						ForJCheckBoxnum(jp9,FRAME);
    					} catch (IOException e1) {
    						e1.printStackTrace();
    					} catch (SQLException e1) {
    						// TODO Auto-generated catch block
    						e1.printStackTrace();
    					}				
    					FRAME.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);// 设置模式类型。					
    					FRAME.setVisible(true);
    					B = true;
    					((DefaultTableModel)jt.getModel()).getDataVector().clear();// 清空前一人的菜单				
    					break;
    				} else {
    					break;
    				}
    			}else {
    				JOptionPane.showMessageDialog(null, "您还未下单,不能进行结账", "结账错误", JOptionPane.ERROR_MESSAGE);
    				ForJCheckBox(jp2);
    				ForJCheckBox(jp3);
    				ForJCheckBox(jp4);
    				ForJCheckBox(jp5);
    				ForJCheckBox(jp6);
    				ForJCheckBox(jp7);
    			}
    		case "热销菜式":
    			jtp.setSelectedIndex(0);//切换卡片
    			break;
    		case "小炒类":
    			jtp.setSelectedIndex(1);
    			break;
    		case "蔬菜类":
    			jtp.setSelectedIndex(2);
    			break;
    		case "主食类":
    			jtp.setSelectedIndex(3);
    			break;
    		case "甜品类":
    			jtp.setSelectedIndex(4);
    			break;
    		case "饮品类":
    			jtp.setSelectedIndex(5);
    			break;
    		}
    	}
    
    	//将已勾选的取消
    	void ForJCheckBox(JPanel p) {
    		int count = p.getComponentCount();
    		for (int i = 0; i < count; i++) {
    			Component comp = p.getComponent(i);
    			if(comp instanceof JCheckBox){
    				JCheckBox jcb = (JCheckBox)comp;
    				if(jcb.isSelected()) {
    					jcb.setSelected(false);				
    				}
    			}
    		}
    	}
    
    	//记录餐桌号、用餐人数、时间、菜名、价格、总金额
    	void ForJCheckBoxnum(JPanel p,JDialog FRAME) throws SQLException, IOException {
    	 	String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    	 	String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=shop";
    	 	String userName="sa";
    	 	String userPwd="123456";
    		Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
    		Statement state=dbConn.createStatement();
    		PreparedStatement ps=dbConn.prepareStatement("insert into fo1(nu,name,bool) values(?,?,?)");
    		for(int i=0; i<jt.getRowCount(); i++)
    		{
    	    	String str = (String)jt.getValueAt(i, 0);
    			ps.setString(1,jg[jcb11.getSelectedIndex()]);
    			ps.setString(2,str);
    			ps.setInt(3,0);
    			ps.executeUpdate();
    		}
    	
    		int rowCount=jt.getRowCount();
    		int sum = 0;
    		String b = null;
    	
        	for(int i=0; i<rowCount; i++) {
        		String str = (String)jt.getValueAt(i, 0);//取得第i行第一列的数据
        		str = ((String)jt.getValueAt(i, 1));//取得第i行第二列的数据
        		try {
            		int a = Integer.parseInt(str);
            		sum = sum+a;
            		b = Integer.toString(sum);
        		} 
    			catch (NumberFormatException e) {
            		e.printStackTrace();
        		}
        	}
        
        	PreparedStatement ps2=dbConn.prepareStatement("insert into zo(桌号,人数,总金额) values(?,?,?)");
        	ps2.setString(1,jg[jcb11.getSelectedIndex()]);
    		ps2.setString(2,jtf2.getText());
    		ps2.setString(3,b);
    		ps2.executeUpdate();
    	
    		JLabel JL = new JLabel("总金额:"+b,JLabel.CENTER);
    		FRAME.add(JL,BorderLayout.SOUTH);
    	}
    
    	//判断是否输入用餐人数
    	boolean ForJCheckBoxnum(JPanel p) {
    		int count = p.getComponentCount();
    		for(int i=0; i<count; i++) {
    			Component comp = p.getComponent(i);
    			if(comp instanceof JTextField) {
    				JTextField jtf = (JTextField)comp;
    				if(jtf.getText().equals(""))return false;
    			}
    		}return true;
    	}
    
    	//向JTable添加已点菜式及价格
    	void ForJCheckBoxStr(JPanel p,Vector data,Vector names,DefaultTableModel model,JTable jt) {	
    		int count = p.getComponentCount();
    		for(int i=0; i<count; i++) {
    			Component comp = p.getComponent(i);
    			if(comp instanceof JCheckBox) {
    				JCheckBox jcb = (JCheckBox)comp;
    				if(jcb.isSelected()) {
    					jcb.setSelected(false);	
    					Component Comp = p.getComponent(i-3);
    					JLabel jl = (JLabel)Comp;			
    					Vector Row = new Vector();
    					Row.add(jcb.getText());
    					Row.add(jl.getText());
    					data.add(Row.clone());
    					model = new DefaultTableModel(data, names);				
    					jt.setModel(model);
    				}
    			}
    		}
    	}
    }

    7. 项目课题总结

    本课题使用面向对象软件工程方法,进行的分析与设计,使用面向java编程技术,进行的系统实现,有如下优点:

    (1)本课题采用面向对象分析与设计方法,对同类型软件开发的分析设计过程提供一定的参考。

    (2)极大增强程序的扩展性。对某一对象单独修改,会反映整个体系。

    (3)提高了开发效率,更加符合人类的思维。

    (4)java语言可以“一次编译,到处运行”。

    本课题还有如下需要改进的地方:

    (1)配套的接单功能

    (2)数据的存储不够合理

    (3)数据关系设计不够合理

    (4)可以根据产品销量对产品进行排序,向客户进行推荐

    (5)可以添加评论区以供用户对产品进行评价

    (6)可以添加预购功能方便个性化订餐

    (7)可以添加用户注册功能配合用户管理系统方便用户管理

    展开全文
  • 校园点餐系统 同学要的,后来又不要了,现在开源免费试用 用到的技术 持久层框架 数据库 框架 简述 使用MySQL作为数据库,使用mybatis来操作mysql,整体以SpringBoot为结构。 程序一共有四层:controller、service、...
  • 餐厅点餐系统源码

    2017-08-27 20:35:49
    系统利用SSH框架进行设计,页面进过美化
  • 当前可以实现外卖点餐,在店扫码点餐。餐桌管理可按照桌位号点餐,财务管理和账单管理,有一台吧台电脑即可实现。后端功能有:工作台、代客下单、商品管理、订单管理、外卖管理、桌位管理、会员管理、营销工具、管理...
  • java餐桌点餐系统源码 今天来给大家讲解一个完整的微信小程序点餐项目。java后台+微信小程序实现点餐系统。 后台技术选型: JDK8 MySQL(需要5.6以上) Spring-boot Spring-data-jpa Lombok Freemarker Bootstrap ...
  • 基于Android网上点餐系统源码,有client端和server端,都实现了网上点餐功能,希望你能喜欢。
  • java餐桌点餐系统源码 IT 编年史 1877 1877年7月9日,Bell Telephone Company 在波士顿成立 1879 1879年2月17日,Bell Telephone Company 和 New England Telephone and Telegraph Company 合并,并在波士顿成立 ...
  • 点餐系统源码

    2018-08-14 10:39:08
    实例为Java语言实现点餐系统, 前台为Bootstrap框架, 后台框架为SSH, 数据库使用mysql, 此套点餐系统可以管理餐馆所有业务,包括每日的营收数据, 月度营收数据, 餐桌信息管理,菜谱信息管理以及订单信息管理, 真正...
  • 其中dincan文件为Java编写代码包含功能接口与前台页面,first_demo为后台系统的页面设计,sql文件是系统的数据库文件。 运行环境 1、计算机需要安装了JDK1.8以及eclipse 2、计算机需要安装了MySQL8.0数据库 3、...
  • 大学生毕业设计-餐厅点餐系统,该项目是一个javaWeb项目,主要功能有,商品管理,商品展示,点餐,商品配送,商品评价等,有数据库、源码,可根据自己需求功能添加或删除

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,154
精华内容 1,261
关键字:

java点餐系统源码