Java课程设计
(综合项目文档)
太空火锅点餐系统
二〇二〇年七月
目 录
1 绪论..................................................... 1
1.1 项目概述............................................ 1
1.2 项目意义............................................ 1
2 开发工具和相关技术简介................................... 2
2.1 Eclipse简介(或者MyEclipse或者IEDA简介)......... 2
2.2 Java语言介绍....................................... 2
2.3 MySQL简介.......................................... 2
2.4 JDBC技术简介....................................... 3
3 系统需求分析............................................. 4
3.1 系统可行性分析...................................... 4
3.2 系统需求分析........................................ 4
3.3 组内成员分工........................................ 4
3.4 项目进度安排........................................ 5
4 系统设计................................................. 6
4.1 系统设计............................................ 6
5 系统实现................................................. 8
5.1 源代码.............................................. 8
5.2 系统测试............................................ 8
6 结论和心得.............................................. 11
1.1 项目概述
太空火锅点餐系统是一种非常方便的、集无线、网络等技术为一体的无线手持终端,它的建立可以有效节约成本,系统的每个环节明确分工,并通过可视化的软件支持,有效减少了人为差错的概率,代之以高效的、便捷、准确的数字化服务系统。
项目实现的顺序:登录系统—>系统主页—>选择类别—>点餐—>打开点餐面板—>返回主页—>提交菜单—>保存到文件夹—>返回登录页面。
运行代码弹出登录系统页面,输入暗号点击登录即可进入系统主页,如若输入暗号错误,界面显示“暗号不对,抓起来送火星做成肉片!”,系统主页有选择类别,点击其中某一类进入打开点餐面板进行点餐,之后返回首页,提交菜单界面显示提交,菜品录入存入文件夹。
1.2 项目意义
随着科技的不断进步,互联网的不断发展,传统餐饮的点餐模式,现在已经不能满足人们的需求,相较于传统的点餐方式,电子无线点餐系统更为方便快捷,能给顾客提供更好的体验。在用餐高峰期,顾客多的时候电子无线点餐系统的优势表现尤为明显。电子无限点餐系统实现了餐桌与厨房的而直接对接,避免了员工与厨房之间的奔波,减轻了员工的工作量,是员工能够投入更多的精力到顾客的服务中去,给顾客以更好的体验。并且点餐系统实现了对顾客点餐信息、数据的电子化、系统化的管理,相对于传统的点餐方式而言,避免了员工人工操作出现的漏上菜、上错菜甚至忘记下单、下错单的失误,同时减少了餐厅的管理成本投入。
点餐系统既方便了顾客,也方便了餐厅管理,是餐饮行业的一次不可忽视的变革与进步。
本项目是太空火锅点餐系统。开发环境:Eclipse、MySQL;开发语言:java语言;开发技术:JDBC、GUI等。本章将对开发工具和相关技术进行简单介绍。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来java语言开发开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。Eclipse是一个开放源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。随后还有包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
Java语言的优点:
1、跨平台性:跨平台性是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。 Java自带的虚拟机很好地实现了跨平台性。 Java源程序代码经过编译后生成二进制的字节码是与平台无关的,但是可被Java虚拟机识别的一种机器码指令,Java虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。
2、简单:Java语言是一种相当简洁的“面向对象”程序设计语言。Java语言省略了C++语言中所有的难以理解、容易混淆的特性,例如头文件、指针、结构、单元、运算符重载、虚拟基础类等。它更加严谨、简洁。
3、面向对象:面向对象技术使得应用程序的开发变得简单易用,节省代码。Java是一种面向对象的语言,也继承了面向对象的诸多好处,如代码扩展、代码复用等。
4、安全性:java编译时要进行Java语言和语义的检查,保证每个变量对应一个相应的值,编译后生成Java类。运行时Java类需要类加载器载入,并经由字节码校验器校验之后才可以运行。 Java类在网络上使用时,对它的权限进行了设置,保证了被访问用户的安全性。
5、多线程:是一种轻量级进程,是现代程序设计中必不可少的一种特性。多线程处理能力使得程序能够具有更好的交互性、实时性。
MySQL是一种DBMS,而且是一种一个小型的开源的关系型数据库管理系统。2008年1月16日MySQL AB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。
MySQL它在世界范围内得到了广泛的安装和使用,应该是使用人数最多的数据库软件了,因为它有着这样的特性:
MySQL数据库软件也是使用最常用的数据库管理语言:结构化查询语言(SQL)进行数据库管理和操作。
JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。它由一些Java语言写的类、界面组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。Java具有健壮、安全、易用等特性,而且支持自动网上下载,本质上是一种很好的数据库应用的编程语言。它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。
简单地说,JDBC能完成下列三件事:
1、同一个数据库建立连接;
2、向数据库发送SQL语句;
3、处理数据库返回的结果。
随着大家对JDBC兴趣的不断浓厚,越来越多的开发人员已经开始利用JDBC为基础的工具进行开发。这使开发工作变得容易。
1、技术可行性
本项目是太空火锅点餐系统。开发环境:Eclipse、MySQL;开发语言:java语言;开发技术:JDBC、GUI等,对此相关技术已经很熟悉,在技术可行性方面上没有任何问题,所以技术上是可行的。
1、系统的反应速度应较快,稳定、高效和可靠;
2、顾客需要登录系统输入口令才能进行点餐服务;
3、即时可见,对客户预定的餐饮信息的处理(录入);
4、系统界面应美观大方,风格统一,突出特色,功能设计应体现人性化思想,方便用户操作;
5、在结构上应该具有很好的可扩展性,便于将来功能的扩展和维护。
——太空火锅点餐系统功能模块图
表3-1 组内成员分工情况表
序号 |
姓名 |
组内角色 |
小组分工 |
备注 |
1 |
蔡思红 |
组长 |
系统主页界面、肉类界面、进度条,定时器的编写 |
|
2 |
李志豪 |
组员 |
数据的保存,读取、点餐面板界面 |
|
3 |
王学昊 |
组员 |
用户登录界面、火锅底料界面、素菜界面 |
|
4 |
李兴建 |
组员 |
小吃界面,饮品界面、综合项目文档的编写 |
|
说明:组内角色:组长为项目经理;其他人分别为编码、测试、架构师等。
进度安排如表3-2所示。
表3-2 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
30分钟 |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
60分钟 |
系统设计 |
设计说明-可以画流程图;数据库设计 |
是现阶段 |
两天 |
编写代码 |
项目工程源代码 |
40分钟 |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
20分钟 |
部署、运行 |
系统使用说明、运维报告-答辩 |
进入Eclipse开发环境,编写代码,运行代码弹出登录系统页面,用户需要输入暗号点击登录即可进入系统主页,如若输入暗号错误,界面显示“暗号不对,抓起来送火星做成肉片!”系统界面设计美观大方,风格统一,突出特色,功能设计人性化思想,方便用户操作,系统主页有选择类别,点击其中某一类进入打开点餐面板进行点餐,之后返回首页,提交菜单界面显示提交进度,菜品存入文档当中,对客户预定的餐饮信息的处理录入。保持代码的完整性,在结构上应该具有很好的可扩展性,便于将来功能的扩展和维护。
//登录、系统主页
package ArrayList;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Customers {
public static void main(String[] args) {
//添加窗口
JFrame jf=new JFrame();
jf.setResizable(false);//固定窗口大小
jf.setSize(500, 400);//设置窗口大小
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
//添加面板
JPanel panel=new JPanel(null);
//按钮
JButton btn=new JButton("登陆");
btn.setFont(new Font("楷体", Font.PLAIN, 25));//设置字体
btn.setBackground(new Color(169, 169, 169));//按钮颜色
btn.setBounds(160, 287, 200, 40);//放置按钮位置及设置按钮大小
panel.add(btn);//将按钮添加到面板
//标签
JLabel lb=new JLabel("暗号:");//创建标签
lb.setForeground(new Color(192, 192, 192));//设置标签颜色
lb.setFont(new Font("华文琥珀", Font.PLAIN, 21));//设置字体大小
lb.setBounds(100, 209, 80, 40);//标签位置及大小
panel.add(lb);//将标签添加到面板
//文本框
JPasswordField txt =new JPasswordField();//加密文本框
//JTextField txt=new JTextField();//普通文本框
txt.setBounds(160, 209, 200, 40);//文本框位置及大小
panel.add(txt);//将文本框添加到面板
JLabel lb2=new JLabel(new ImageIcon("d:/java图片素材/00111.jpg"));//添加背景图片
//lb2.setForeground(new Color(0, 0, 0));//
lb2.setBounds(0, 0, 485, 400);//图片位置及大小
panel.add(lb2);//将图片添加到面板
String number="1";//规定文本框内容
btn.addActionListener(new ActionListener() {//添加监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(txt.getText().equals(number)) {//判断输入文本框内容是否正确
cteatjfnew(jf);//调用一个新的窗口
jf.setVisible(false);//隐藏该窗口(在哪个窗口就隐藏那个窗口)
}else {
JOptionPane.showMessageDialog(null,"暗号不对,抓起来送火星做成肉片!");//如果前面的if不成立,则弹出此对话框
}
}
});
jf.setContentPane(panel);//将面板添加到窗口
jf.setVisible(true);//让窗口可见
}
public static void cteatjfnew(JFrame jf) {
JFrame jfnew=new JFrame();//创建另一个窗口
jfnew.setResizable(false);//固定窗口大小
jfnew.setSize(800, 500);//设置窗口大小
jfnew.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口可关闭
jfnew.setLocationRelativeTo(null);
JPanel panel=new JPanel(null);
JButton btn=new JButton("返回登录界面");//设置按钮
btn.setBackground(Color.pink);//按钮颜色
btn.setForeground(Color.RED);//字体颜色
btn.setBounds(10, 10, 110, 20);//按钮位置及大小
panel.add(btn);//将按钮添加到面板
btn.addActionListener(new ActionListener() {//为该按钮添加监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jf.setVisible(true);//让登陆界面可见
jfnew.setVisible(false);//隐藏第二个界面
}
});
JLabel lb=new JLabel("WEICOME TO ");//创建标签
lb.setFont(new Font("楷体",Font.PLAIN,33));//设置字体
lb.setForeground(Color.BLUE);//设置标签颜色
lb.setBounds(280, 40, 400, 60);//标签位置及大小
panel.add(lb);//将标签添加到面板
JLabel lb2=new JLabel("太空火锅店 ");//设置标签
lb2.setFont(new Font("楷体",Font.PLAIN,44));//设置字体
lb2.setForeground(Color.ORANGE);//标签颜色
lb2.setBounds(260, 100, 400, 60);//标签位置及大小
panel.add(lb2);//将标签添加到面板
JLabel lb3=new JLabel("现在您可以选择您想要吃的食物了");
lb3.setFont(new Font("楷体",Font.PLAIN,25));//设置字体
lb3.setForeground(Color.red);
lb3.setBounds(220, 200, 400, 60);
panel.add(lb3);
JButton btn2=new JButton("火星的肉");
btn2.setBackground(Color.cyan);
btn2.setBounds(50, 300, 120, 30);
panel.add(btn2);
RouJFrame roujframe=new RouJFrame();//调用RouJFrame.java
btn2.addActionListener(new ActionListener() {//为该按钮添加监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(false);//隐藏第二个窗口
roujframe.roucreatjframe(jfnew);//创建肉类窗口
}
});
JButton btn3=new JButton("土星的菜");
btn3.setBackground(Color.cyan);
btn3.setBounds(200, 300, 120, 30);
panel.add(btn3);
SucaiJFrame sucaijframe=new SucaiJFrame();
btn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(false);//隐藏窗口
sucaijframe.sucaicreatjframe(jfnew);//创建肉类窗口
}
});
JButton btn4=new JButton("木星的小吃");
btn4.setBackground(Color.cyan);
btn4.setBounds(350, 300, 120, 30);
panel.add(btn4);
XiaoChiJFrame xiaochijframe=new XiaoChiJFrame();
btn4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(false);//隐藏窗口
xiaochijframe.xiaochicreatjframe(jfnew);//创建肉类窗口
}
});
JButton btn5=new JButton("月球的底料");
btn5.setBackground(Color.cyan);
btn5.setBounds(500, 300, 120, 30);
panel.add(btn5);
GuoDiJFrame guodijframe=new GuoDiJFrame();
btn5.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(false);//隐藏窗口
guodijframe.guodicreatjframe(jfnew);//创建肉类窗口
}
});
JButton btn6=new JButton("水星的饮品");
btn6.setBackground(Color.cyan);
btn6.setBounds(650, 300, 120, 30);
panel.add(btn6);
YinLiaoJFrame yinliaojframe=new YinLiaoJFrame();
btn6.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(false);//隐藏窗口
yinliaojframe.yinliaocreatjframe(jfnew);//创建肉类窗口
}
});
JButton btn7=new JButton("提交菜单");
btn7.setBackground(Color.cyan);
btn7.setBounds(650, 380, 150, 30);
panel.add(btn7);
TijiaoJFrame ti=new TijiaoJFrame();//创建进度条窗口对象
btn7.addActionListener(new ActionListener() {//创建“提交菜单”按钮的监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
ti.tijaojframe(jfnew);//调用定时器窗口的方法
}
});
JLabel lb5=new JLabel(new ImageIcon("d:/java图片素材/界面12.png"));
lb5.setBounds(0, 0, 800, 500);
panel.add(lb5);
jfnew.setContentPane(panel);
jfnew.setVisible(true);
}
//火星的肉
package ArrayList;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class RouJFrame {
public static void roucreatjframe(JFrame jfnew) {
JFrame jf=new JFrame();//创建窗口
jf.setResizable(false);//固定窗口大小
jf.setSize(500, 800);//设置窗口大小
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
JPanel roupanel=new JPanel(null);
JButton closebtn=new JButton("返回主菜单");
closebtn.setBackground(Color.ORANGE);
closebtn.setBounds(0, 0, 100, 30);
JButton btn=new JButton("精品羊肉卷......78");
btn.setFont(new Font("楷体",Font.PLAIN,22));
//btn.setBackground(Color.cyan);
btn.setForeground(Color.RED);
btn.setBounds(140, 55, 250, 40);
roupanel.add(btn);
JButton btn1=new JButton("精品牛肉卷......88");
btn1.setFont(new Font("楷体",Font.PLAIN,22));
//btn1.setBackground(Color.cyan);
btn1.setForeground(Color.RED);
btn1.setBounds(140, 105, 250, 40);
roupanel.add(btn1);
JButton btn2=new JButton("招牌虾滑........98");
btn2.setFont(new Font("楷体",Font.PLAIN,22));
//btn2.setBackground(Color.cyan);
btn2.setForeground(Color.RED);
btn2.setBounds(140, 155, 250, 40);
roupanel.add(btn2);
JButton btn3=new JButton("捞派毛肚.......118");
btn3.setFont(new Font("楷体",Font.PLAIN,22));
//btn3.setBackground(Color.cyan);
btn3.setForeground(Color.RED);
btn3.setBounds(140, 205, 250, 40);
roupanel.add(btn3);
JButton btn4=new JButton("捞派鸭血........88");
btn4.setFont(new Font("楷体",Font.PLAIN,22));
//btn4.setBackground(Color.cyan);
btn4.setForeground(Color.RED);
btn4.setBounds(140, 255, 250, 40);
roupanel.add(btn4);
JButton btn5=new JButton("撒尿牛丸........99");
btn5.setFont(new Font("楷体",Font.PLAIN,22));
//btn5.setBackground(Color.cyan);
btn5.setForeground(Color.RED);
btn5.setBounds(140, 305, 250, 40);
roupanel.add(btn5);
JButton btn6=new JButton("蟹肉棒..........68");
btn6.setFont(new Font("楷体",Font.PLAIN,22));
//btn6.setBackground(Color.cyan);
btn6.setForeground(Color.RED);
btn6.setBounds(140, 355, 250, 40);
roupanel.add(btn6);
JButton btn7=new JButton("五花肉.........118");
btn7.setFont(new Font("楷体",Font.PLAIN,22));
//btn7.setBackground(Color.cyan);
btn7.setForeground(Color.RED);
btn7.setBounds(140, 405, 250, 40);
roupanel.add(btn7);
JButton btn8=new JButton("罗非鱼.........128");
btn8.setFont(new Font("楷体",Font.PLAIN,22));
//btn8.setBackground(Color.cyan);
btn8.setForeground(Color.RED);
btn8.setBounds(140, 455, 250, 40);
roupanel.add(btn8);
JButton btn9=new JButton("鹌鹑蛋..........38");
btn9.setFont(new Font("楷体",Font.PLAIN,22));
//btn9.setBackground(Color.cyan);
btn9.setForeground(Color.RED);
btn9.setBounds(140, 505, 250, 40);
roupanel.add(btn9);
JLabel lb0=new JLabel(new ImageIcon("d:/java图片素材/截图1.png"));
lb0.setBounds(0, 0, 500, 800);
roupanel.add(lb0);
closebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(true);//打开主窗口
jf.dispose();//销毁肉类窗口
}
});
roupanel.add(closebtn);
jf.setContentPane(roupanel);
jf.setVisible(true);
}
}
//土星的菜
package ArrayList;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class SucaiJFrame {
public static void sucaicreatjframe(JFrame jfnew) {
JFrame jf=new JFrame();
jf.setResizable(false);//固定窗口大小
jf.setSize(500, 800);//设置窗口大小
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
JPanel roupanel=new JPanel(null);
JButton closebtn=new JButton("返回主菜单");
closebtn.setBackground(Color.ORANGE);
closebtn.setBounds(0, 0, 100, 30);
JButton btn=new JButton("金针菇.......20");
btn.setFont(new Font("楷体",Font.PLAIN,22));
//btn.setBackground(Color.cyan);
btn.setForeground(Color.RED);
btn.setBounds(140, 55, 250, 40);
roupanel.add(btn);
JButton btn1=new JButton("土豆片........25");
btn1.setFont(new Font("楷体",Font.PLAIN,22));
//btn1.setBackground(Color.cyan);
btn1.setForeground(Color.RED);
btn1.setBounds(140, 105,250, 40);
roupanel.add(btn1);
JButton btn2=new JButton("豆芽........24");
btn2.setFont(new Font("楷体",Font.PLAIN,22));
//btn2.setBackground(Color.cyan);
btn2.setForeground(Color.RED);
btn2.setBounds(140, 155, 250, 40);
roupanel.add(btn2);
JButton btn3=new JButton("豆皮........26");
btn3.setFont(new Font("楷体",Font.PLAIN,22));
//btn3.setBackground(Color.cyan);
btn3.setForeground(Color.RED);
btn3.setBounds(140, 205, 250, 40);
roupanel.add(btn3);
JButton btn4=new JButton("生菜.......42");
btn4.setFont(new Font("楷体",Font.PLAIN,22));
//btn4.setBackground(Color.cyan);
btn4.setForeground(Color.RED);
btn4.setBounds(140, 255, 250, 40);
roupanel.add(btn4);
JButton btn5=new JButton("香菇........28");
btn5.setFont(new Font("楷体",Font.PLAIN,22));
//btn5.setBackground(Color.cyan);
btn5.setForeground(Color.RED);
btn5.setBounds(140, 305,250, 40);
roupanel.add(btn5);
JButton btn6=new JButton("玉米........43");
btn6.setFont(new Font("楷体",Font.PLAIN,22));
//btn6.setBackground(Color.cyan);
btn6.setForeground(Color.RED);
btn6.setBounds(140, 355, 250, 40);
roupanel.add(btn6);
JButton btn7=new JButton("木耳.......36");
btn7.setFont(new Font("楷体",Font.PLAIN,22));
//btn7.setBackground(Color.cyan);
btn7.setForeground(Color.RED);
btn7.setBounds(140, 405,250, 40);
roupanel.add(btn7);
JButton btn8=new JButton("冬瓜.......66");
btn8.setFont(new Font("楷体",Font.PLAIN,22));
//btn8.setBackground(Color.cyan);
btn8.setForeground(Color.RED);
btn8.setBounds(140, 455, 250, 40);
roupanel.add(btn8);
JButton btn9=new JButton("小青菜.......35");
btn9.setFont(new Font("楷体",Font.PLAIN,22));
//btn9.setBackground(Color.cyan);
btn9.setForeground(Color.RED);
btn9.setBounds(140, 505,250, 40);
roupanel.add(btn9);
JLabel lb0=new JLabel(new ImageIcon("d:/java图片素材/1.jpg"));
lb0.setBounds(0, 0, 500, 800);
roupanel.add(lb0);
closebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(true);//打开主窗口
jf.dispose();//销毁肉类窗口
}
});
roupanel.add(closebtn);
jf.setContentPane(roupanel);
jf.setVisible(true);
}
}
//木星的小吃
package ArrayList;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class XiaoChiJFrame {
public static void xiaochicreatjframe(JFrame jfnew) {
JFrame jf=new JFrame();
jf.setResizable(false);//固定窗口大小
jf.setSize(500, 800);//设置窗口大小
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
JPanel roupanel=new JPanel(null);
JButton closebtn=new JButton("返回主菜单");
closebtn.setBackground(Color.ORANGE);
closebtn.setBounds(0, 0, 100, 30);
JButton btn=new JButton("蛋炒饭........8");
btn.setFont(new Font("楷体",Font.PLAIN,22));
//btn.setBackground(Color.cyan);
btn.setForeground(Color.RED);
btn.setBounds(135, 55, 250, 40);
roupanel.add(btn);
JButton btn1=new JButton("火锅面........5");
btn1.setFont(new Font("楷体",Font.PLAIN,22));
//btn1.setBackground(Color.cyan);
btn1.setForeground(Color.RED);
btn1.setBounds(135, 135,250, 40);
roupanel.add(btn1);
JButton btn2=new JButton("南瓜饼........10");
btn2.setFont(new Font("楷体",Font.PLAIN,22));
//btn2.setBackground(Color.cyan);
btn2.setForeground(Color.RED);
btn2.setBounds(135, 215,250, 40);
roupanel.add(btn2);
JButton btn3=new JButton("麻花..........5");
btn3.setFont(new Font("楷体",Font.PLAIN,22));
//btn3.setBackground(Color.cyan);
btn3.setForeground(Color.RED);
btn3.setBounds(135, 295, 250, 40);
roupanel.add(btn3);
JButton btn4=new JButton("黄金馒头......12");
btn4.setFont(new Font("楷体",Font.PLAIN,22));
//btn4.setBackground(Color.cyan);
btn4.setForeground(Color.RED);
btn4.setBounds(135, 375, 250, 40);
roupanel.add(btn4);
JButton btn5=new JButton("脆皮香蕉......12");
btn5.setFont(new Font("楷体",Font.PLAIN,22));
//btn5.setBackground(Color.cyan);
btn5.setForeground(Color.RED);
btn5.setBounds(135, 455, 250, 40);
roupanel.add(btn5);
JLabel lb0=new JLabel(new ImageIcon("d:/java图片素材/31.jpg"));
lb0.setBounds(0, 0, 500, 800);
roupanel.add(lb0);
closebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(true);//打开主窗口
jf.dispose();//销毁肉类窗口
}
});
roupanel.add(closebtn);
jf.setContentPane(roupanel);
jf.setVisible(true);
}
}
//月球的底料
package ArrayList;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GuoDiJFrame {
public static void guodicreatjframe(JFrame jfnew) {
JFrame jf=new JFrame();
jf.setResizable(false);//固定窗口大小
jf.setSize(500, 400);//设置窗口大小
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
JPanel roupanel=new JPanel(null);
JButton closebtn=new JButton("返回主菜单");
closebtn.setBackground(Color.ORANGE);
closebtn.setBounds(0, 0, 100, 30);
JButton btn=new JButton("菌汤养生锅......78");
btn.setFont(new Font("楷体",Font.PLAIN,22));
//btn.setBackground(Color.cyan);
btn.setForeground(Color.RED);
btn.setBounds(140, 35, 250, 40);
roupanel.add(btn);
JButton btn1=new JButton("微辣麻唇锅......88");
btn1.setFont(new Font("楷体",Font.PLAIN,22));
//btn1.setBackground(Color.cyan);
btn1.setForeground(Color.RED);
btn1.setBounds(140, 115, 250, 40);
roupanel.add(btn1);
JButton btn2=new JButton("香辣麻油锅.......98");
btn2.setFont(new Font("楷体",Font.PLAIN,22));
//btn2.setBackground(Color.cyan);
btn2.setForeground(Color.RED);
btn2.setBounds(140, 195, 250, 40);
roupanel.add(btn2);
JLabel lb0=new JLabel(new ImageIcon("d:/java图片素材/123.jpg"));
lb0.setBounds(0, 0, 500, 800);
roupanel.add(lb0);
closebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(true);//打开主窗口
jf.dispose();//销毁肉类窗口
}
});
roupanel.add(closebtn);
jf.setContentPane(roupanel);
jf.setVisible(true);
}
}
//水星的饮品
package ArrayList;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class YinLiaoJFrame {
public static void yinliaocreatjframe(JFrame jfnew) {
JFrame jf=new JFrame();
jf.setResizable(false);//固定窗口大小
jf.setSize(500, 800);//设置窗口大小
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
JPanel roupanel=new JPanel(null);
JButton closebtn=new JButton("返回主菜单");
closebtn.setBackground(Color.ORANGE);
closebtn.setBounds(0, 0, 100, 30);
JButton btn=new JButton("矿泉水........3");
btn.setFont(new Font("楷体",Font.PLAIN,22));
//btn.setBackground(Color.cyan);
btn.setForeground(Color.RED);
btn.setBounds(135, 25, 250, 40);
roupanel.add(btn);
JButton btn1=new JButton("豆浆........6");
btn1.setFont(new Font("楷体",Font.PLAIN,22));
//btn1.setBackground(Color.cyan);
btn1.setForeground(Color.RED);
btn1.setBounds(135, 85,250, 40);
roupanel.add(btn1);
JButton btn2=new JButton("雪碧........4");
btn2.setFont(new Font("楷体",Font.PLAIN,22));
//btn2.setBackground(Color.cyan);
btn2.setForeground(Color.RED);
btn2.setBounds(135, 145,250, 40);
roupanel.add(btn2);
JButton btn3=new JButton("可乐........4");
btn3.setFont(new Font("楷体",Font.PLAIN,22));
//btn3.setBackground(Color.cyan);
btn3.setForeground(Color.RED);
btn3.setBounds(135, 205, 250, 40);
roupanel.add(btn3);
JButton btn4=new JButton("果粒橙.......10");
btn4.setFont(new Font("楷体",Font.PLAIN,22));
//btn4.setBackground(Color.cyan);
btn4.setForeground(Color.RED);
btn4.setBounds(135, 265,250, 40);
roupanel.add(btn4);
JButton btn5=new JButton("君乐宝酸奶.....15");
btn5.setFont(new Font("楷体",Font.PLAIN,22));
//btn5.setBackground(Color.cyan);
btn5.setForeground(Color.RED);
btn5.setBounds(135, 325,250, 40);
roupanel.add(btn5);
JButton btn6=new JButton("蜂蜜柚子茶....18");
btn6.setFont(new Font("楷体",Font.PLAIN,22));
//btn6.setBackground(Color.cyan);
btn6.setForeground(Color.RED);
btn6.setBounds(135, 385,250, 40);
roupanel.add(btn6);
JButton btn7=new JButton("雪花啤酒......7");
btn7.setFont(new Font("楷体",Font.PLAIN,22));
//btn7.setBackground(Color.cyan);
btn7.setForeground(Color.RED);
btn7.setBounds(135, 445, 250, 40);
roupanel.add(btn7);
JButton btn8=new JButton("红星二锅头.....35");
btn8.setFont(new Font("楷体",Font.PLAIN,22));
//btn8.setBackground(Color.cyan);
btn8.setForeground(Color.RED);
btn8.setBounds(135, 505, 250, 40);
roupanel.add(btn8);
JButton btn9=new JButton("小劲酒.......15");
btn9.setFont(new Font("楷体",Font.PLAIN,22));
//btn9.setBackground(Color.cyan);
btn9.setForeground(Color.RED);
btn9.setBounds(135, 565, 250, 40);
roupanel.add(btn9);
JButton btn10=new JButton("古井贡酒.....148");
btn10.setFont(new Font("楷体",Font.PLAIN,22));
//btn9.setBackground(Color.cyan);
btn10.setForeground(Color.RED);
btn10.setBounds(135, 625, 250, 40);
roupanel.add(btn10);
JLabel lb0=new JLabel(new ImageIcon("d:/java图片素材/4.jpg"));
lb0.setBounds(0, 0, 500, 800);
roupanel.add(lb0);
closebtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jfnew.setVisible(true);//打开主窗口
jf.dispose();//销毁肉类窗口
}
});
roupanel.add(closebtn);
jf.setContentPane(roupanel);
jf.setVisible(true);
}
}
//进度条、计时器
package ArrayList;
import java.awt.Color;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
public class TijiaoJFrame {//创建进度条窗口
static JProgressBar bre =new JProgressBar();//创建进度条
static int number=0;//进度条从零开始
static JFrame jf=new JFrame();//创建窗口(用static创建便于定时器监听器访问)
public static void tijaojframe(JFrame jfnew) {//创建方法
jf.setResizable(false);//固定窗口大小
jf.setSize(300, 100);//设置窗口大小
bre.setBackground(Color.WHITE);
//设置窗口可关闭
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
JPanel panel =new JPanel();
JLabel lb =new JLabel("正在提交菜单,请稍等");
lb.setForeground(Color.RED);
panel.add(lb);
bre.setMinimum(0);//进度条最小值
bre.setMaximum(100);//进度条最大值
bre.setStringPainted(true);//显示绘制进度条百分比数
panel.add(bre);
timer(jfnew);//创建定时器
jf.setContentPane(panel);
jf.setVisible(true);//窗口可见
}
public static void timer(JFrame jfnew) {//定时器具体方法
Timer timer = new Timer();//创建定时器对象
timer.scheduleAtFixedRate(new TimerTask() {//打开定时器
public void run() {//重写定时器的run方法
number+=20;//设置进度值
if(number>100) {//判断进度是否大于100
jfnew.dispose();//关闭菜单窗口
jf.dispose();//关闭进度条窗口
timer.cancel();//关闭定时器
}
bre.setValue(number);//设置当前时间的进度值
}
}, 1000, 1000);//规定一秒后每秒频率运行定时器(点击提交菜单后,一秒后开始运行定时器)
}
}
系统登录界面实现
用户通过输入暗号来进行登录
系统主页实现
用户登录后,便可看到当前有几个选项,可对其进行操作。
火星的肉实现
点击火星的肉按钮,出现如下图界面,进行点餐
打开点餐面板
开始点餐
土星的菜
点击土星的菜按钮,出现如下图界面,进行点餐
木星的小吃
点击木星的小吃按钮,出现如下图界面,进行点餐
月球的底料
点击土星的菜按钮,出现如下图界面,进行点餐
水星的饮品
点击水星的饮品按钮,出现如下图界面,进行点餐
提交菜单
点击提交菜单按钮,出现如下图界面
通过此次课程设计,使我们更加扎实的掌握了有关java方面的知识,在设计过程中我们虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查也终于找出了原因所在,也暴露出了前期我们在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉,在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退。
最后,感谢老师以及同学们的悉心的教导和热心的帮助,同时我们明白了团队的重要性,团队是一群互助互利、团结一致为统一的目标和标准坚毅奋斗到底,团队不仅强调个人的成绩,更强调团队的整体成绩。
姓名:蔡思红
心得:本次实训给我最大的感受就是知识就是力量。通过此次实训,我才知道基础知识也是很重要的,实训中我忘记了前面所学的部分知识,这导致我在写代码的过程中遇到错误就不知道哪里的错误,不知所措。另外在想要实现其他一些功能的时候,因为基础功不扎实而毫无头绪。于是便在小组内讨论,网上查找资料,请教老师,请教同学等。在一系列的摸索中,终于完成了代码的编写,整个过程下来,我特别感谢老师和同学们的耐心讲解,也让我明白了团队的重要性,知识的重要性。此次实训给我最大的收获不仅仅是复习到了前面所学习的内容,也让我学习到了一些新的知识。通过此次的项目积累和沉淀,我相信在下一个项目中放入我一定会比这次做的更好
姓名:李志豪
心得:经过自己和队友们的努力,收获了很多,多去尝试,多去探知,总会有收获。
姓名:王学昊
心得:团结合作很重要,多讨论,多交流,写出来以后,成就感满满。
姓名:李兴建
心得:通过这次实训,我清楚的意识到我的基础知识没有学扎实,学过之后长时间的没有去复习,导致整个项目的进度延迟,在今后的学习中我会做好复习功课,利用好课余时间。同样这次实训我也收获了很多东西,不会的东西就要多问,多和别人交流、讨论,经过几天的时间从开始的构思到走向成熟,我们每个人都付出了很多努力,很有成就感,今后我会继续努力。
原文:https://www.cnblogs.com/sunshine-me/p/13232855.html