------------------------------------------Have a Good Day~----------------------------------

准备国赛和ACM省赛

随缘更新

本次的主要目的想用JAVA写一个类似于饭店自动点餐的程序,分为三个主要用户:客人,员工,经理

同时利用MySQL对餐厅的营业额,食材剩余量,员工开销进行实时维护

饼越画越大,感觉再补充点东西当毕业设计也可以= =

2019.3.25

第一天代码已全部重写

主窗口布局改为NULL布局

主要窗口转换思想保留

Customer窗口全部重写

窗口的初步搭建

涉及:

JFrame 窗口

JPanel  面板组件  (暂时不知道具体咋实现的 日后搞懂再补充)

不同窗口的转换  (暂时不知道咋关  这就很尴尬)

JFrame 窗口搭建

       Toolkit kit=Toolkit.getDefaultToolkit();

        //获取当前屏幕的大小
Dimension screenSize=kit.getScreenSize();
int screenHight=screenSize.height;
int screenWight=screenSize.width; //窗口大小
setSize(screenWight/2,screenHight/2);
setLocationByPlatform(true); //窗口位置
setLocation(550,150);

icon 小图标的获取

        //获取图标
Image img=new ImageIcon("F:\\Java_program\\Catering_management_system\\src\\catering_Management\\bin\\icon.png").getImage();
setIconImage(img);

background 背景设置

    //背景图片设置
public void paint(Graphics g)
{
File file = new File("F:\\Java_program\\Catering_management_system\\src\\catering_Management\\bin\\background.png"); //异常处理~
try
{
BufferedImage image=ImageIO.read(file);
g.drawImage(image,0,0,null);
}
catch(Exception e)
{
e.printStackTrace();
} }

然后是最主要的

窗口转换

        //顾客按键 进入顾客界面
JButton customerButton= new JButton("Customer"); //等一手 lambda语句简化~~~~
customerButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//创建一个顾客窗口
Customer customerWindow = new Customer();
customerWindow.setTitle("Welcome~");
customerWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
customerWindow.setVisible(true); //当前窗口关闭 } }
);

我觉得可以lambda简化~~~

我觉得是这么实现的:

首先 JButton 一个按键

然后对这个按键有一个 ActionListener 事件响应

对应的事件为创建一个 Customer 对象

Customer实际上也继承了 JFrame 也是一个窗口类

然后创建Customer对象就等于创建了一个新的窗口

再将当前窗口关闭即可~

今天全部代码

今天的训练赛没打..........

博弈论我是真的不会啊T T

2019.3.26

lambda语句实现

窗口关闭实现

重写了Customer类 T T

3.27对Customer类再次重写

我求求你别再出BUG了

T T

lambda 语句实现:

        customerButton.addActionListener(e->
{ //创建一个顾客窗口
Customer customerWindow = new Customer();
customerWindow.setTitle("Welcome~");
customerWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
customerWindow.setVisible(true); //当前窗口关闭
closeThis(); });

具体lamda 语句以后补充

现在只知道当一个类只有一种方法需要实现时,不需要新建对象,直接lamda实现就好

然后窗口关闭:

    /*
* 窗口关闭 调用父类方法写在本身的方法中直接调用
* 在点击Button 触发的 ActionListener 中 创建的是其他类
* 无法直接调用JFrame 中关闭窗口的方法
*/
public void closeThis()
{
super.dispose();
}

定义这个函数的原因是

在CustomerButton 中继承的是ActionListener  无法调用dispose方法

只能新建一种方法实现父类的 dispose

然后在

CustomerButton.addActionListener中直接调用这个方法

因为是在一个类中

所以语法是合法的

重头戏:

别看了 GG了

Customer 类  3.27 已重写

原因请看 3.27

废了我一下午+一晚上重写Customer 类:

原因是当你重载JFrame的paint方法时

你在添加组件是会出现背景加载失败的情况

这样有一个问题

就是必须创建一个ImagePanel对象

也可能是我忘了JAVA的一些特性

我总感觉不用创建对象也可以

以后补充

这样我在选择窗口使用的null布局就不能使用了

2019.3.27

主要问题

重写了Customer类

实现了文本框的显示

重写Customer:

在实现文本框透明化后

所有的文字会被背景遮挡

解决方案 ImagePanel类不再继承Panle 类

改为继承JPanle类

然后重载 JPanle类中的PaintComponent方法

实现对组件背景的绘制

2.26提到的 为什么new ImagePanel 并且重载 PaintComponent

是因为我们要在内容窗格上进行各种组件的添加

而new ImagePanel等于创建了一个和JFrame窗口等大的内容窗格并对JFame窗口覆盖

所以要对JPanle 中的PaintComponent方法重载 来获取内容窗格的背景

2019.4.1

简化了Customer的代码

添加了选择框和提示文本

近期准备国赛和省赛

精力不够

随缘更新吧

2019.4.26更新

最近遇到的问题汇总一下

JAVA&Mysql连接问题

//URL指向要访问的数据库名
url="jdbc:mysql://localhost:3306/cateringsystem?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";

URL要这么写,涉及到很多修正问题啥的

咱也不懂,咱也不敢问

//数据库连接参数
Connection con;
String driver;
String url;
String user;
String password;
//创建statement对象,执行SQL语句
Statement satement,addsatement;
//创建PreparedStatement对象,执行插入语句
PreparedStatement prsq; //要执行的SQL语句
String dql,dml;
//ResultSet类,用来存放获取的结果集
ResultSet rs;

用到的基本参数

还有一个问题

rs= satement.executeQuery(dql);

  

一个statement 对象可以对应多个resultset对象

不过对其中一个resultset进行操作的时候 其他的都是关闭的

也就是不能同时对同一个statement的resultset对象操作

我的解决办法是创捷多个statement对象

稳得一匹~

然后就是一个类创建队对象数组的时候

比如这样

private JLabel[] line = new JLabel[20];

好像是只声明了空间

如果操作的话会出现

空指针异常

Exception in thread "AWT-EventQueue-0"

所以还要

line[index] = new JLabel();

大体的主框架已经差不多了

感觉5.1左右差不多能肝出来

美化啥的咱也不敢想

-----------------------------未完待续-----------------------------------------------

Java & Mysql 餐饮管理系统 过程心得记录的更多相关文章

  1. Java+Mysql+学生管理系统

    最近正在学java和数据库,想起以前写的学生管理系统,都是从网上下载,敷衍了事.闲来无事,也就自己写了一个,不过功能实现的不是很多. 开发语言:java: 开发环境:Mysql, java: 开发工具 ...

  2. 使用雅虎YUI Compressor压缩JS过程心得记录

    对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...

  3. 毕业设计java实验室预约管理系统SSH机房预约系统javaweb机房实验室排课系统mysql机房管理系统 实验室管理系统 课程设计 代码讲解 调试运行

    毕业设计java实验室预约管理系统SSH机房预约系统javaweb机房实验室排课系统mysql机房管理系统 实验室管理系统 课程设计 代码讲解 调试运行 注意:该项目只展示部分功能,如需了解,评论区咨 ...

  4. Mysql 8 使用过程中的命令记录

    Mysql 8 使用过程中的命令记录 注: 当前 MySQL 数据库的版本 8.0.27 修改密码 1. 使用其他用户修改root 密码 ALTER USER 'root'@'localhost' I ...

  5. Java Web项目搭建过程记录(struts2)

    开发工具:eclipse 搭建环境:jdk1.7   tomcat 8.0 基础的java开发环境搭建过程不再赘述,下面从打开eclipse 之后的操作开始 第一步: 创建项目,File -> ...

  6. step by step 之餐饮管理系统二

    昨天写了餐饮管理系统的相关需求,得到了园友的一些好的建议,感到很高兴,确实写的也不全面,现在补充一下需要的业务,这次主要做的主要是前台收银系统,所以业务主要集中在前台点菜收银这块,而后面数据管理这块则 ...

  7. JAVA / MySql 编程——第二章 初始MySQL

    1. MySQL:        ●  MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.            MySQL最流行的关系型数据库管理系统, ...

  8. Windows使用MySQL数据库管理系统中文乱码问题

    声明:本文关于MySQL中文乱码问题的解决方案均基于Windows 10操作系统,如果是Linux系统会有较多不适用之处,请谨慎参考. 一.MySQL中文乱码情况 1. sqlDevelper远程登陆 ...

  9. Java学习的一般过程

    伴随着科学技术的不断发展,世界开始走向信息化.网络化.大数据化.自然而然,计算机专业变得十分热门.尽管如此,计算机专业人才对社会来说仍然是供不应求,当然,这里指的是高层次技术人才.因此,对于我们这些占 ...

随机推荐

  1. 【学习笔记】adb命令

    1.adb connect 连接设备 如:adb connect 127.0.0.1:62001 连接夜神模拟器\adb connect 127.0.0.1:21503 链接逍遥模拟器 adb con ...

  2. 配置传统vlan间路由

    S1#SH RUN spanning-tree mode pvst ! interface FastEthernet0/1 switchport access vlan 10 switchport m ...

  3. Next Closest Time

    Given a time represented in the format "HH:MM", form the next closest time by reusing the ...

  4. (电脑重置之后)win10在桌面点右键鼠标一直转圈;无法点击桌面图标;

    昨天重置系统之后,发现了这个毛病.桌面任务栏都能正常点击,就是一到桌面,无法点击桌面上面的图标(刚开机的时候还可以点).想新建文件夹来着,一点右键,鼠标即开始转圈圈.本来以为自己能好,结果第二天了还这 ...

  5. # log对数Hash映射优化

    log对数Hash映射优化 利用了一个数学技巧:$\forall k \in [0,35],2^{k} mod 37 互不相等,且恰好取遍整数1-36 $ 应用:将int范围内的\(2^k映射到k\) ...

  6. HTML5网页文档结构

    2.1     Web标准 Web标准,使得Web开发更加容易.Web标准由万维网联盟(W3C)制定. 2.1.1          Web标准概述 Web标准的最终目的就是保证每个人都有权力访问相同 ...

  7. USBIP源码分析

    简介 在普通的电脑上,想使用USB设备,必须将插入到主机.USBIP却可以通过网络,让主机访问其他主机上的外部设备,而用户程序完全感知不到区别. usbip的文章在这里:https://pdfs.se ...

  8. CSS3彩色进度条加载动画 带进度百分比

    在线演示       本地下载

  9. Codeforces 1229B. Kamil and Making a Stream

    传送门 注意到只要考虑祖先和后代之间的贡献 发现对于一个节点,他和所有祖先最多产生 $log$ 个不同的 $gcd$ 所以每个节点开一个 $vector$ 维护祖先到自己所有不同的 $gcd$ 和这个 ...

  10. GoAccess安装

    编译安装 yum install geoip-devel openssl-devel libmaxminddb-devel ncurses-devel bzip2-devel tokyocabinet ...