JavaFX制作餐厅管理系统(附源码)

相信有很多同学在做毕业设计或者是提升自己的会选择做一个系统,下面从各个方面了解制作餐厅管理系统(以下均为up主个人思路,有错误的地方欢迎各路大佬指点,非常感谢),供各位同学参考学习

前言:

  1. 制作思路

  1. 资料准备

  1. 功能实现

  1. 最后优化

注意:餐厅管理注重服务的细节及界面的美化

一.制作思路:

  1. 界面设计(附一张注册界面)

2.功能制作

3数据库脚本制作(脚本来自SQLserver)

二.资料准备:

  1. 首先准备数据库脚本,确定自己的表格功能及意义(这边给各位同学一个建议,尽量少设置主外键,因为非常考验基础,出错到时候修改会出现很多难修改的错误)

  1. 准备项目资料图片和视频(美化界面,这边推荐一个网站阿里巴巴图标库,里面有超多图标可作按钮使用)

  1. 可以写一个思维导图X-mind,明确项目思路(当然这边只是建议,如果个人不喜欢的话不强求哦)

  1. 注意事项:

(1)准备数据库脚本的时候思路一定要清晰,遇到问题不要慌,认真思考。

(2)想要把界面做好看的同学可以去学PS,真的很有用

(3)思维导图根据自己兴趣来

三.功能实现

首页

·用轮播图的方式展示出一部分热销产品,这个页面没有那么美观,同学们可以学习更多关于JavaFxUI知识把界面美化

点菜界面

将菜品全部展示,并且将菜品分类用不同的布局包裹0顾客能够选择自己喜欢的菜品,也能够搜素自己想要指定搜素的菜品

JavaFX制作餐厅管理系统(附源码)_第1张图片

购物车

顾客需要将需要的菜品加入到购物车之后才能生成账单

JavaFX制作餐厅管理系统(附源码)_第2张图片

餐桌界面

。顾客可以自定义选择空桌,选好桌之后便跳转到点菜界面(这个界面确实有点花,可以后期优化)

登录注册

顾客需要先登录/注册后才能进行点菜操作

注册信息需验证,符合条件方可注册;

登录时输入用户名、登录密码、(也可以管理者身份进行登录)

账单

。顾客点完菜之后,需进行付款结算操作

JavaFX制作餐厅管理系统(附源码)_第3张图片

个人中心

顾客可以修改自己的信息 (手机号 名字 性别)且能够进入充值页面

JavaFX制作餐厅管理系统(附源码)_第4张图片

充值页面

顾客可以进行充值操作

JavaFX制作餐厅管理系统(附源码)_第5张图片

所有的功能介绍完毕

四.最后优化

这里up主想出来的优化就是最后的界面优化,已经展示给大家看了,不过在最后一致的商讨下加了一个广告页和加载页美化一下流程页面

JavaFX制作餐厅管理系统(附源码)_第6张图片

中间可以插入视频,按钮控制随时进入登录页面,我知道很多同学不喜欢广告(坏笑)

在中间插入了一个加载页,通过线程控制,有兴趣的同学可以学习,开始搜索的作用是防止误触,其实后面想想,就是一个美化的作用

JavaFX制作餐厅管理系统(附源码)_第7张图片

所有的界面及功能展示完毕了,感谢各位的同学的观看及点赞,想要源码的可以私信up主,文章的最后会附上部分可直接运行的源码,up主也是一名在校学生,所以有大佬看见可以指点一番我也是非常欢迎(有不对的地方直接指出来,欢迎来喷),有同学对这方面感兴趣也可以私信up主交流,看到就回,本人脾气很好,很好说话,非常欢迎各位

最后大家能看到这里也是非常感谢,送各位还在学习的同学一句话:愿大家源于热爱,也忠于热爱

代码:

package com.zking.ui;

import java.io.File;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

/**
 * 加载等待页案例
 * 
 * @author Miaoqx
 */
public class LoadingDialog extends Application {
    int count = 0;
    Bigin bigin=new Bigin();
    // 创建字符串格式的媒体源路径
            String url = new File("E:\\项目资料\\S1结业\\项目资料图片\\背景图\\蟹堡王.mp4").getAbsoluteFile().toURI().toString();
            // 创建媒体对象
            Media media = new Media(url);
            // 创建媒体播放器
            MediaPlayer mPlayer = new MediaPlayer(media);
            // 创建媒体播放视图
            MediaView mView = new MediaView(mPlayer);
    @Override
    public void start(Stage stage) throws Exception {
        Label loadBtn = new Label("", new ImageView(new Image("图标\\进入1.jpg", 140, 80, true, true)));
        loadBtn.setStyle("-fx-background-color:while" + "");
        loadBtn.setFont(new Font("华文琥珀", 20));
        loadBtn.setPrefSize(140, 80);
        loadBtn.setCenterShape(true);
        GridPane gp = new GridPane();
        gp.addRow(1, loadBtn);
        gp.setMargin(loadBtn, new Insets(0, 0, 0, 250));
        loadBtn.setStyle("-fx-cursor:hand");
        loadBtn.setOnMouseClicked(event -> {
            stage.close();
            mPlayer.stop();
            Loading loading = new Loading(new Stage());
            loading.show();
            new Thread(() -> {
                while (true) {
                    count++;
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    if (count >= 4) {
                        loading.closeStage();
                        Platform.runLater(() -> {
                            try {
                                new Logins().start(stage);
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        });
                        break;
                    }
                }
            }).start();
//            new Thread(() -> {
//                // try {
//                // Thread.sleep(4000);
//                // } catch (InterruptedException e1) {
//                // e1.printStackTrace();
//                // }
//                
//            }).start();
        });

        // 设置媒体播放视图的宽度和高度
                    mView.setFitWidth(600);
                    mView.setFitHeight(600);
                    gp.setAlignment(Pos.BOTTOM_CENTER);
                    gp.addRow(0, mView);
                    mPlayer.play();
                    stage.setScene(new Scene(gp, 600, 500));
                    stage.setTitle("蟹堡王loading");
                    // stage.setMaximized(true);//设置占满全屏
                    // stage.getIcons().add(new Image("img\\R-C.gif"));
                    stage.show();
        
        // ------------------------------------------------

    }

    public static void main(String[] args) {
        launch(args);
    }
}
package com.zking.ui;

import javafx.application.Platform;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

    /**
     * 加载页
     * 
     * @author Miaoqx
     */
    public class Loading {

        protected Stage stage;
        protected StackPane root;
        protected Label messageLb;

        public Loading(Stage owner) {
            ImageView loadingView = new ImageView(
                    new Image("img\\汉堡加载界面.jfif"));// 可替换

            messageLb = new Label("稍等!美味蟹堡马上送达");
            messageLb.setFont(new Font("华文琥珀",20));
            messageLb.setStyle("-fx-Text-fill:brown");
            root = new StackPane();
            root.setMouseTransparent(true);
            root.setPrefSize(owner.getWidth(), owner.getHeight());
            root.setBackground(new Background(new BackgroundFill(Color.rgb(0, 0, 0, 0), null, null)));
            root.getChildren().addAll(loadingView, messageLb);
            root.setMargin(messageLb, new Insets(500,0,0,0));
            Scene scene = new Scene(root);
            scene.setFill(Color.TRANSPARENT);

            stage = new Stage();
            stage.setScene(scene);
            stage.setResizable(false);
            stage.initOwner(owner);
            stage.initStyle(StageStyle.TRANSPARENT);
            stage.initModality(Modality.APPLICATION_MODAL);
            stage.getIcons().addAll(owner.getIcons());
            stage.setX(owner.getX());
            stage.setY(owner.getY());
            stage.setHeight(owner.getHeight());
            stage.setWidth(owner.getWidth());
        }
//Timer
        // 更改信息
        public void showMessage(String message) {
            Platform.runLater(() -> messageLb.setText(message));
        }

        // 显示
        public void show() {
            Platform.runLater(() -> stage.show());
        }

        // 关闭
        public void closeStage() {
            Platform.runLater(() -> stage.close());
        }
    }

    

你可能感兴趣的:(数据库,java,eclipse)