Javafx+MySQL 学生成绩管理系统

做项目经常有各种做GUI的管理,像什么图书馆管理系统,学生成绩管理系统。都曾使大部分人头疼不已。而作为新时代好少年,自然不能坐视不管。本着学习的原则,对这个程序进行了开发。欢迎交流学习

下载链接:
github:https://github.com/13337356453/Student_achievement_management_system.git
CSDN:https://download.csdn.net/download/realmels/12866270


由于本例是用MySQLJavafx开发的,所以请提前安装好MySQLJavafx


项目介绍

  • 开发时间:2020-8-25
  • 开发语言:Java
  • Java版本:1.8.0_261
  • 数据库:MySQL
  • MySQL版本: 8.0.21
  • 开发工具:IntelliJ IDEA 2020.2
  • 项目名称:学生成绩管理系统

具体代码

由于我懒得把所有的代码都在博客里介绍的原因,所以我只介绍部分重要代码,具体的可在源代码中查看

md5加密

在实行登录时,如果直接用明文密码加密,会非常容易被抓包获取,所以为了安全(高级),在登录时通常会采取对登录密码加密的措施。而我们这里使用最简单的md5加密

通过java实现md5加密非常简单,专门写一个类来进行加密即可
首先要导入一些库

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

然后是加密的代码

public static String md5(String text) {
        byte[] s = null;
        try {
            s = MessageDigest.getInstance("md5").digest(
                    text.getBytes());
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("没有这个md5算法!");
        }
        String md5code = new BigInteger(1, s).toString(16);
        for (int i = 0; i < 32 - md5code.length(); i++) {
            md5code = "0" + md5code;
        }
        return md5code;
    }

简单测试一下

输入:123456
输出:e10adc3949ba59abbe56e057f20f883e

非常棒

图片显示

我们在JavaFX Scene Builder 2.0里,添加一个图片,设置图片路径,如下
在这里插入图片描述
运行程序,发现并没有图片显示
在这里插入图片描述
这是什么情况,检查fxml文件,发现并无异样
在这里插入图片描述
对于这种情况,我在经历了疯狂的百度,谷歌搜索后。决定。。自己动手,丰衣足食

找到LoginWindow.java文件,他需要一个初始化
要给一个类初始化,我们要让它继承javafx.fxml.Initializable接口

import javafx.fxml.Initializable;

在这里插入图片描述
这样,我们需要实现一个initialize方法,在里面写我们初始化的代码

我们给我们所需显示的图片在初始化代码中设置Image

login_img.setImage(new Image("images/login.jpg"));

再次运行,还是没有图像

这种情况,是因为在javafx中导入图片如果是本地图片需要在前面加上file:

login_img.setImage(new Image("file:images/login.jpg"));

再次运行,成功显示了图片

密码可视

在登录界面,密码输入框的右边,有一个小眼睛
在这里插入图片描述
按下这个小眼睛,密码框中的密码就变成可视的,同时小眼睛变成带杠的小眼睛
即常见的密码显示功能

想要实现这样的功能,原理非常简单,就是在相同的位置有一个密码输入框(PasswordField)和一个文本输入框(TextField),当按下按钮时,一个隐藏,一个显示,控制文本,就实现了

具体原理可以看这一篇博客https://blog.csdn.net/realmels/article/details/108413721




更多知识点可自行下载源代码学习

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
使用JavaFX开发一个学生成绩管理系统,你可以按照以下步骤构建: 1. **项目初始化**: - 创建一个新的JavaFX项目,可以使用IntelliJ IDEA、Eclipse或NetBeans等集成开发环境(IDE)。 - 添加JavaFX库到项目的构建路径。 2. **界面设计**: - 设计主界面,包含菜单栏、工具栏、学生列表区域、成绩输入区域和操作按钮(如添加、编辑、删除、查询等)。 - 使用FXML布局文件定义各个界面元素。 3. **数据模型**: - 创建一个`Student`类,包含属性如姓名、ID、成绩等,并提供对应的getter和setter方法。 - 可能还需要一个`GradeBook`类,用于存储所有学生及其成绩。 4. **功能实现**: - 对于添加学生,创建一个表单让用户输入信息并保存到`GradeBook`中。 - 删除学生可以通过遍历`GradeBook`删除指定的元素。 - 编辑功能允许用户选择已有的学生,修改其成绩,并更新数据库。 - 查询功能可以按姓名、ID或成绩查找学生。 5. **事件处理**: - 使用JavaFX的事件处理机制,如`Button.setOnAction()`,为按钮绑定相应的事件处理方法,执行相应的操作。 6. **数据库集成**(可选): - 如果你想持久化数据,可以使用JDBC或者更现代的ORM框架(如Hibernate)连接数据库,如MySQL或SQLite。 7. **异常处理**: - 需要处理可能出现的错误,比如输入验证错误、数据库连接错误等。 8. **测试**: - 编写单元测试确保各个功能正常工作。 以下是部分代码片段示例: ```java // Student类 public class Student { private String name; private int id; private double grade; // 构造器、getter和setter public Student(String name, int id, double grade) { this.name = name; this.id = id; this.grade = grade; } public String getName() { return name; } public void setName(String name) { this.name = name; } // ...其他属性的getter和setter... } // GradeBook类 import java.util.ArrayList; import java.util.List; public class GradeBook { private List<Student> students; public GradeBook() { students = new ArrayList<>(); } public void addStudent(Student student) { students.add(student); } // ...其他方法... } // 主界面中添加学生的按钮点击事件处理 @FXML private Button addStudentBtn; addStudentBtn.setOnAction(event -> { String name = nameTextField.getText(); // ...其他获取输入数据的逻辑... Student student = new Student(name, id, grade); gradeBook.addStudent(student); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值