2:高颜值JavaFX数据库-九讲之二
高颜值数据库项目实战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(完整精讲解版+源代码)(九)
项目效果图
|
|
| |
|
功能点实现
- 实现学生信息的录入
- 实现学生信息的修改
- 实现学生信息的更新
- 实现学生信息的删除
- 添加快捷键使用,方便快速管理
- 使用javafx+fxml+css控制ui样式
- 实现以javafx内部api调用绘制字体特效,无需额外资源调度
- 实现软件图标自定义,增加软件美观度
- 实现拖动窗口即可移动,使更加人性化
- 实现软件英文化,增加可交流性
- 禁用窗口缩放功能,防止ui碰撞
- 添加作者、主页、关闭按钮
- 增加事务弹窗,给予正确提示及错误解决方案
内部优化
- 使用分装思想,将功能块拆分,设立CreateMenu类,统一添加
- 封装错误与信息提示框,统一布局格式
- 封装数据库连接类,无需重复调度
- 采用Lambda表达式绑定事件,无需重写类
- 使用fxml模块化设计标签,方便增改
- 采用css设置样式,统一管理
- 去除不必要的类public,增加软件安全性
- 利用SceneBuilder绘制生成fxml控件,提升编写效率
- 采用不同尺寸图标格式适应多种运行状态
类结构示例
菜单栏编写
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(完整精讲解版+源代码)(九)