高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(二)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(一)

[高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(二)](当前位置)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(三)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(四)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(五)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(六)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(七)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(八)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(九)

更多项目逐句吐血精讲在这里,加油ヾ(◍°∇°◍)ノ゙!!

项目效果图

功能点实现

  1. 实现学生信息的录入
  2. 实现学生信息的修改
  3. 实现学生信息的更新
  4. 实现学生信息的删除
  5. 添加快捷键使用,方便快速管理
  6. 使用javafx+fxml+css控制ui样式
  7. 实现以javafx内部api调用绘制字体特效,无需额外资源调度
  8. 实现软件图标自定义,增加软件美观度
  9. 实现拖动窗口即可移动,使更加人性化
  10. 实现软件英文化,增加可交流性
  11. 禁用窗口缩放功能,防止ui碰撞
  12. 添加作者、主页、关闭按钮
  13. 增加事务弹窗,给予正确提示及错误解决方案

内部优化

  1. 使用分装思想,将功能块拆分,设立CreateMenu类,统一添加
  2. 封装错误与信息提示框,统一布局格式
  3. 封装数据库连接类,无需重复调度
  4. 采用Lambda表达式绑定事件,无需重写类
  5. 使用fxml模块化设计标签,方便增改
  6. 采用css设置样式,统一管理
  7. 去除不必要的类public,增加软件安全性
  8. 利用SceneBuilder绘制生成fxml控件,提升编写效率
  9. 采用不同尺寸图标格式适应多种运行状态

类结构示例

在这里插入图片描述

菜单栏编写

1、在createBorderPane中添加

在borderPane的Top添加菜单栏

borderPane.setTop(createMenuBar(borderPane));
 private BorderPane createBorderPane() {
        BorderPane borderPane = new BorderPane();
        borderPane.setTop(createMenuBar(borderPane));
        borderPane.setCenter(new TextMain().createText());
        return borderPane;
}

但是我们还没有createMenuBar函数,我们继续创建

2、创建Menu

创建一个放Menu的地方MenuBar:

MenuBar menuBar = new MenuBar();

再创建一大堆Menu,我们先写个类CreateMenu 用来创建Menu ,一会我们创建CreateMenu 类:

CreateMenu createMenu = new CreateMenu();

然后把那些菜单添加到面板上

下面这些还都没有创建,我们下一步就开始创建

这些名字都是自己启的,大家随便写

  • createMenuInformationEntry:创建菜单栏—插入操作
  • createMenuInformationSearch:创建菜单栏—搜索操作
  • createMenuInformationUpdate:创建菜单栏—更新操作
  • createMenuInformationDelete:创建菜单栏—删除操作
  • createMenuInformationSystem:创建菜单栏—主页操作
menuBar.getMenus().addAll(createMenu.createMenuInformationEntry(borderPane),
            createMenu.createMenuInformationSearch(borderPane), createMenu.createMenuInformationUpdate(borderPane),
            createMenu.createMenuInformationDelete(borderPane), createMenu.createMenuInformationSystem(borderPane));

合起来就是:

private MenuBar createMenuBar(BorderPane borderPane) {
    MenuBar menuBar = new MenuBar();
    CreateMenu createMenu = new CreateMenu();
    menuBar.getMenus().addAll(createMenu.createMenuInformationEntry(borderPane),
            createMenu.createMenuInformationSearch(borderPane), createMenu.createMenuInformationUpdate(borderPane),
            createMenu.createMenuInformationDelete(borderPane), createMenu.createMenuInformationSystem(borderPane));
    return menuBar;
}

3、书写CreateMenu类

我们新建一个CreateMenu类,把上面自己写的函数类写出来

我们可以先创建一个Menu 类,然后把名字传进去

Menu menu = new Menu("Information Entry");
class CreateMenu {
	Menu createMenuInformationEntry(BorderPane borderPane) {
		Menu menu = new Menu("Information Entry");
		return menu;
	}

	Menu createMenuInformationSearch(BorderPane borderPane) {
		Menu menu = new Menu("Information Search");
		return menu;
	}

	Menu createMenuInformationUpdate(BorderPane borderPane) {
		Menu menu = new Menu("Information Update");
		return menu;
	}

	Menu createMenuInformationDelete(BorderPane borderPane) {
		Menu menu = new Menu("Information Delete");
		return menu;
	}

	Menu createMenuInformationSystem(BorderPane borderPane) {
		Menu menu = new Menu("System");
		return menu;
	}
}

我们运行就会看到结果,上面多了一行菜单栏

在这里插入图片描述

4、为菜单栏添加更多的内容

在创建名称的时候加一个下划线“_”就可以指定快捷键

Menu menu = new Menu("Information _Entry");
setMnemonicParsing:激活快捷键

接下来我们开配置点开菜单里面的字菜单
在这里插入图片描述

MenuItem menuItem = new MenuItem("Entry");

最后,我们把这个小菜单添加到大菜单里面

menu.getItems().addAll(menuItem);

那么一个就做好了:

Menu createMenuInformationEntry(BorderPane borderPane) {
		Menu menu = new Menu("Information _Entry");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Entry");
		menu.getItems().addAll(menuItem);
		
		return menu;
}

5、以同样的方法做出其他的菜单

Menu createMenuInformationSearch(BorderPane borderPane) {
		Menu menu = new Menu("Information _Search");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Search");
		menu.getItems().addAll(menuItem);
		
		return menu;
}

在这里插入图片描述

Menu createMenuInformationUpdate(BorderPane borderPane) {
		Menu menu = new Menu("Information _Update");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Update");
		menu.getItems().addAll(menuItem);
		return menu;
}

在这里插入图片描述

Menu createMenuInformationDelete(BorderPane borderPane) {
		Menu menu = new Menu("Information _Delete");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Delete");
		menu.getItems().addAll(menuItem);
		return menu;
}

在这里插入图片描述

Menu createMenuInformationSystem(BorderPane borderPane) {
	Menu menu = new Menu("S_ystem");
	menu.setMnemonicParsing(true); // 设置快捷键有效
	MenuItem menuItem1 = new MenuItem("Home");
	MenuItem menuItem2 = new MenuItem("Off");
	MenuItem menuItem3 = new MenuItem("Author");
	return menu;
}

在这里插入图片描述

6、我们就完成了菜单栏的创建

class CreateMenu {
	Menu createMenuInformationEntry(BorderPane borderPane) {
		Menu menu = new Menu("Information _Entry");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Entry");
		menu.getItems().addAll(menuItem);
		
		return menu;
	}

	Menu createMenuInformationSearch(BorderPane borderPane) {
		Menu menu = new Menu("Information _Search");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Search");
		menu.getItems().addAll(menuItem);
		
		return menu;
	}

	Menu createMenuInformationUpdate(BorderPane borderPane) {
		Menu menu = new Menu("Information _Update");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Update");
		menu.getItems().addAll(menuItem);
		return menu;
	}

	Menu createMenuInformationDelete(BorderPane borderPane) {
		Menu menu = new Menu("Information _Delete");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem = new MenuItem("Delete");
		menu.getItems().addAll(menuItem);
		return menu;
	}

	Menu createMenuInformationSystem(BorderPane borderPane) {
		Menu menu = new Menu("S_ystem");
		menu.setMnemonicParsing(true); // 设置快捷键有效
		MenuItem menuItem1 = new MenuItem("Home");
		MenuItem menuItem2 = new MenuItem("Off");
		MenuItem menuItem3 = new MenuItem("Author");
		return menu;
	}
}

关注后续章节,我们会添加更多功能:

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(一)

[高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(二)](当前位置)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(三)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(四)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(五)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(六)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(七)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(八)

高颜值数据库项目实战MySQL+JavaFX+Fxml+CSS(完整精讲解版+源代码)(九)

后记

更多项目逐句吐血精讲在这里,加油ヾ(◍°∇°◍)ノ゙!!

C语言飞机大战小游戏(2万字!完整精讲解版+源代码)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值