1:高颜值JavaFX数据库-九讲之一
- 项目效果图
- 功能点实现
- 内部优化
- 类结构示例
- 主要结构创建
- 1、创建主Management 类,并继承Application
- 2、在Management 中创建start以提供启动
- 解释:
- 3、我们开始写createScene()函数
- 解释:
- 4、我们开始写createBorderPane()函数
- 主界面文字设计
- 1、添加函数
- 2、创建类和方法
- 3、创建文本并返回
- 4、更改文本格式
项目效果图
功能点实现
- 实现学生信息的录入
- 实现学生信息的修改
- 实现学生信息的更新
- 实现学生信息的删除
- 添加快捷键使用,方便快速管理
- 使用javafx+fxml+css控制ui样式
- 实现以javafx内部api调用绘制字体特效,无需额外资源调度
- 实现软件图标自定义,增加软件美观度
- 实现拖动窗口即可移动,使更加人性化
- 实现软件英文化,增加可交流性
- 禁用窗口缩放功能,防止ui碰撞
- 添加作者、主页、关闭按钮
- 增加事务弹窗,给予正确提示及错误解决方案
内部优化
- 使用分装思想,将功能块拆分,设立CreateMenu类,统一添加
- 封装错误与信息提示框,统一布局格式
- 封装数据库连接类,无需重复调度
- 采用Lambda表达式绑定事件,无需重写类
- 使用fxml模块化设计标签,方便增改
- 采用css设置样式,统一管理
- 去除不必要的类public,增加软件安全性
- 利用SceneBuilder绘制生成fxml控件,提升编写效率
- 采用不同尺寸图标格式适应多种运行状态
类结构示例
主要结构创建
1、创建主Management 类,并继承Application
注意javafx在低版本没有,要在JDK1.8及以上才可以,但高版本将javafx分离出来了,还需另外安装
public class Management extends Application {
见第2步
}
2、在Management 中创建start以提供启动
@Override
public void start(Stage primaryStage) throws Exception {}
是死格式,我们在里面写代码
解释:
- scene 是场景,我们先写作createScene()函数,一会我们稍后再添加
- primaryStage是系统里面给的,是舞台,这个名字随便起,我是起做primaryStage
- setTitle是设置标题,里面内容随便写
- setResizable是设置窗口不能改变大小,依照自己喜好配置
- getIcons是设置图标,里面一长串代码就当是死格式,后面有个路径,是我电脑的路径,你要根据自己的需要配置,UniversityTable.png是我图片的名称,source是我图片所在是文件夹,要根据自己的情况配置
- primaryStage.show();是显示我们刚创建的程序
@Override
public void start(Stage primaryStage) throws Exception {
Scene scene = createScene();
primaryStage.setScene(scene);
primaryStage.setTitle("Student Information Management System");
primaryStage.setResizable(false);
primaryStage.getIcons().add(new Image(Management.class.getResourceAsStream("/source/UniversityTable.png")));
primaryStage.show();
}
3、我们开始写createScene()函数
解释:
- 800, 600是指的长800,宽600的窗口
- createBorderPane是指的我们要创建一个BorderPane样式的画板,我们接着创建createBorderPane函数
- 什么是BorderPane?java里面还有好多样式的画板
private Scene createScene() {
return new Scene(createBorderPane(), 800, 600);
}
4、我们开始写createBorderPane()函数
- BorderPane borderPane = new BorderPane()是创建一个BorderPane并返回,当然也可以写成 return new BorderPane();
private BorderPane createBorderPane() {
BorderPane borderPane = new BorderPane();
return borderPane;
}
点击运行,此时我们就可以看到我们创建出来的窗口了
主界面文字设计
1、添加函数
我们接着上面的createBorderPane()函数内进行添加,添加一句
borderPane.setCenter(new TextMain().createText());
意思就是把中间设置为文字面板
private BorderPane createBorderPane() {
BorderPane borderPane = new BorderPane();
borderPane.setCenter(new TextMain().createText());
return borderPane;
}
加上之后会报红,因为我们没有TextMain类,更没有createText方法,所以我们下一步开始创建
2、创建类和方法
class TextMain {
Text createText() {
}
}
3、创建文本并返回
class TextMain {
Text createText() {
Text text = new Text(" Welcome to \n Student Information \n Management System");
return text;
}
}
4、更改文本格式
- setFont 设置文字字体、样式、大小
- setFill 设置文字填充
- dropShadow顾名思义:文字下面的影子
- setColor设置颜色
- setEffect添加特效
这里不需要完全理解,能大致看懂就可以
class TextMain {
Text createText() {
Text text = new Text(" Welcome to \n Student Information \n Management System");
text.setFont(Font.font("Consolas", FontWeight.BOLD, 70));
text.setFill(new LinearGradient(0, 0, 1, 2, true, CycleMethod.REPEAT,
new Stop(0, Color.AQUA), new Stop(0.5f, Color.RED)));
DropShadow dropShadow = new DropShadow();
dropShadow.setOffsetY(3.0f);
dropShadow.setColor(Color.color(0.4f, 0.4f, 0.4f));
text.setEffect(dropShadow);
text.setStrokeWidth(1);
text.setStroke(Color.BLACK);
return text;
}
}
哇偶!!点击运行,此时就可以见证奇迹了