mysql 餐饮管理系统_Java & Mysql 餐饮管理系统 过程心得记录

------------------------------------------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 voidpaint(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(newActionListener()

{public voidactionPerformed(ActionEvent e)

{//创建一个顾客窗口

Customer customerWindow = newCustomer();

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 = newCustomer();

customerWindow.setTitle("Welcome~");

customerWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

customerWindow.setVisible(true);//当前窗口关闭

closeThis();

});

具体lamda 语句以后补充

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

然后窗口关闭:

/** 窗口关闭 调用父类方法写在本身的方法中直接调用

* 在点击Button 触发的 ActionListener 中 创建的是其他类

* 无法直接调用JFrame 中关闭窗口的方法*/

public voidcloseThis()

{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左右差不多能肝出来

美化啥的咱也不敢想

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值