学生信息管理系统 图形用户界面(GUI) java 实现对数据库的操作 数据库用的mysql

学生信息管理系统

此项目包括四个类

  1. StartMySql → 用于启动登录界面
  2. Login → 登录进入操作界面
  3. MySQLGUI → 图形用户界面
  4. OperationMySql → 对数据库数据的操作功能实现

mysql 中 Table 的设计
涉及三个表
数据库名 StudentInfo 表名分别为 grade、course、summary

grade

ID

Name

Chinese

Math

English

course

ID

Name

Course

Credit

summary

Course

Average

实现概貌:
在这里插入图片描述
在这里插入图片描述

  • 这个项目的注释真的 真的灰常详细 ~ o( ̄▽ ̄)ブ
  • 此项目代码量在 1000 行左右,纯手打,奥力给

直接上代码啦

  • 启动单独成类

    // StartMySql.java
    package StudentInfo;

    public class StartMySql {
    // 启动登录界面
    public static void main(String[] args) {
    new Login();
    }
    }

  • 这是一个登录界面的小框框

    // Login.java
    package StudentInfo;

    import javax.swing.;
    import java.awt.
    ;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    public class Login implements ActionListener {
    // 定义主窗口
    private final JFrame jf;
    // 定义输入用户名和密码的标签提示
    private final JLabel InputUserName;
    private final JLabel InputPassWord;
    // 定义输入用户名文本框
    private final JTextField UserName;
    // 定义输入密码框
    private final JPasswordField PassWord;
    // 定义登录和取消按钮
    private final JButton Login;
    private final JButton Cancel;

    Login() {
        // 各组件实例化过程
        jf = new JFrame("Login");
        InputUserName = new JLabel("        ID:    ");
        InputPassWord = new JLabel("password:");
        UserName = new JTextField();
        PassWord = new JPasswordField();
        Login = new JButton("登录");
        Cancel = new JButton("退出");
        // 设置主窗口大小、位置和布局
        jf.setSize(400, 150);
        jf.setLocation(600, 400);
        // 设置窗口流式布局
        jf.setLayout(new FlowLayout());
        // 设置用户名和密码框大小
        UserName.setPreferredSize(new Dimension(300, 30));
        PassWord.setPreferredSize(new Dimension(300, 30));
        // 依次向主窗口添加各组件
        jf.getContentPane().add(InputUserName);
        jf.getContentPane().add(UserName);
        jf.getContentPane().add(InputPassWord);
        jf.getContentPane().add(PassWord);
        jf.getContentPane().add(Login);
        jf.getContentPane().add(Cancel);
        // 设置主窗口不可调节大小
        jf.setResizable(false);
        // 设置主窗口默认关闭操作
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 给登录和取消按钮添加 Action 监听器
        Login.addActionListener(this);
        Cancel.addActionListener(this);
        // 设置主窗口可见
        jf.setVisible(true);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        // 如果单击【退出】按钮则程序退出
        if (e.getSource().equals(Cancel)) {
            System.exit(0);
        }
        // 如果单击【登录】按钮则检查用户名和密码是否匹配
        else if (e.getSource().equals(Login)) {
            // 如果用户名和密码匹配,则打开具体操作面板
            if (UserName.getText().equals("admin") && String.valueOf(PassWord.getPassword()).equals("1234")) {
                // MySQLGUI myS = new MySQLGUI();
                // myS.initial();
                new MySQLGUI();
                jf.setVisible(false);
                jf.dispose();
            }
            // 如果用户名和密码不匹配,则给出提示对话框
            else {
                JOptionPane.showOptionDialog(jf, "用户名或密码错误", "登陆失败",
                        JOptionPane.CLOSED_OPTION,
                        JOptionPane.ERROR_MESSAGE, null, null, null);
            }
        }
    }
    

    }

  • 这是 GUI 界面代码

    // MySQLGUI.java
    package StudentInfo;

    import javax.swing.;
    import java.awt.
    ;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;

    public class MySQLGUI extends JFrame implements MouseListener, ItemListener {
    // 定义选项卡
    private JTabbedPane Base;
    // 定义选项卡上的嵌板
    /*
    * jp1, 添加记录
    * jp2, 删除记录
    * jp3, 更新记录
    * jp4, 查找记录
    * jp5, 选课记录
    * jp6 课程平均分
    * /
    private JPanel jp1, jp2, jp3, jp4, jp5, jp6;
    // 定义各按钮
    /

    * InsertRecord, 添加记录按钮
    * InsertReset, 添加取消按钮
    * DeleteRecord, 删除记录按钮
    * DeleteReset, 删除取消按钮
    * QueryRecord, 查询记录按钮
    * UpdateRecord, 更改记录按钮
    * UpdateReset, 重置更新框
    * CourseQuery, 选课表查询按钮
    * GradeQuery, 成绩查询按钮
    * /
    private JButton InsertRecord, InsertReset, DeleteRecord, DeleteReset,
    QueryRecord, UpdateRecord, UpdateReset, CourseQuery, GradeQuery;
    // 定义各标签
    /

    * InsertID1, 插入学号提示标签
    * InsertName1, 插入姓名提示标签
    * InsertChinese1, 插入语文成绩提示标签
    * InsertMath1, 插入数学提示标签
    * InsertEnglish1, 插入英语提示标签
    * DeleteID1, 删除学号提示标签
    * UpdateID1, 更新学号提示标签
    * /
    private JLabel InsertID1, InsertName1, InsertChinese1, InsertMath1,
    InsertEnglish1, DeleteID1, UpdateID1;
    // 定义各文本框
    /

    * InsertID2, 插入学号文本框
    * InsertName2, 插入姓名文本框
    * InsertChinese2, 插入语文文本框
    * InsertMath2, 插入数学文本框
    * InsertEnglish2, 插入英语文本框
    * DeleteID2, 所要删除学号的文本框
    * UpdateID2, 所要更新学号的文本框
    * UpdateContent, 更新内容填写文本框
    * IDCondition, 查询ID文本框
    * NameCondition, 查询姓名文本框
    * ChineseCondition,查询语文文本框
    * MathCondition, 查询数学文本框
    * EnglishCondition,查询英语文本框
    * /
    private JTextField InsertID2, InsertName2, InsertChinese2, InsertMath2, InsertEnglish2,
    DeleteID2, UpdateID2, UpdateContent, IDCondition, NameCondition, ChineseCondition, MathCondition,
    EnglishCondition;
    // 定义显示结果文本域 显示 jp4 jp5 jp6 的查询结果
    /

    * QueryRecordResult, 查询学生信息结果文本域
    * CourseQueryResult, 查询课程信息文本域
    * GradeQueryResult, 查询课程成绩平均分文本域
    * /
    private JTextArea QueryRecordResult, CourseQueryResult, GradeQueryResult;
    // 定义查询选项
    /

    * ID, 选择学号查询
    * Name, 选择姓名查询
    * Chinese, 选择语文查询
    * Math, 选择数学查询
    * English, 选择英语查询
    * */
    private JRadioButton ID, Name, Chinese, Math, English;
    // 定义一个数据库操作的实例
    private OperationMySql db = null;
    // 定义滚动条
    private JScrollPane scroll = null;
    private JScrollPane CourseScroll = null;
    private JScrollPane GradeScroll = null;
    // 定义一个复选框用于选择更新的项目
    private JComboBox UpdateItem = null;
    // 定义复选框用于选择查询的项目
    private JComboBox CourseItem = null; // 课程信息复选框
    private JComboBox GradeItem = null; // 课程成绩复选框

    MySQLGUI() {
        // 设置各按钮信息
        setButton();
        // 设置各标签信息
        setLabel();
        // 设置各文本框信息
        setTextField();
        // 设置各面板信息
        setPanel();
        // 设置布局信息
        setLayout();
        // 设置选项卡信息
        setBase();
        // 设置主窗口信息
        setThis();
        // 设置数据库信息
        setDB();
    }
    
    // 设置各按钮信息的方法
    private void setButton() {
        // jp1 上的按钮
        InsertRecord = new JButton("添加");
        InsertRecord.setFont(new Font("宋体", 1, 20));      // 1 代表加粗,20 代表字体大小
        InsertRe
  • 10
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值