1:高颜值JavaFX数据库-九讲之一

  • 项目效果图
  • 功能点实现
  • 内部优化
  • 类结构示例
  • 主要结构创建
  • 1、创建主Management 类,并继承Application
  • 2、在Management 中创建start以提供启动
  • 解释:
  • 3、我们开始写createScene()函数
  • 解释:
  • 4、我们开始写createBorderPane()函数
  • 主界面文字设计
  • 1、添加函数
  • 2、创建类和方法
  • 3、创建文本并返回
  • 4、更改文本格式

项目效果图



javafx项目案例_javafx项目案例



javafx项目案例_javafx项目案例_02

javafx项目案例_java_03



javafx项目案例_javafx_04



javafx项目案例_xml_05

功能点实现

  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. 采用不同尺寸图标格式适应多种运行状态

类结构示例

javafx项目案例_javafx_06

主要结构创建

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;
 }

点击运行,此时我们就可以看到我们创建出来的窗口了

javafx项目案例_javafx项目案例_07

主界面文字设计

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;
    }
}

哇偶!!点击运行,此时就可以见证奇迹了

javafx项目案例_javafx项目案例_08