JavaSwing成绩管理系统(含源码)

JavaSwing成绩管理系统

目录

JavaSwing成绩管理系统

一、背景及技术

二、思维脑图

三、模块设计

1、界面设计思路

2、登录页面

3、管理员登录成功内容页面

4、学生管理

5、课程管理

6、排课

7、系统管理

8、教师登录成功页面

9、我的授课

10、连接数据库

四、源代码地址:


一、背景及技术

背景:JavaSwing实现前台页面展示,包括后台管理界面和教师登录查看页面,后台数据部分可以选择保存在内存中,也可以选择保存在数据库中。实现简单的学生成绩管理系统。

技术语言:java+mysql

二、思维脑图

JavaSwing成绩管理系统(含源码)_第1张图片

三、模块设计

1、界面设计思路

JavaSwing成绩管理系统(含源码)_第2张图片

主窗体可以分为两部分,一部分是上面的导航按钮部分,另一部分是内容区域,根据不同的按钮点击切换到不同的页面;

主窗体:

主窗体继承自JPanel

内容区域可以创建一个JDesktopPane桌面面板类,可以实现多页面的切换

每一个不同的页面可以继承自JInternalFrame,每一个继承JInternalFrame的页面可以填充到JDesktopPane桌面面板中;

2、登录页面

登录分为管理员和教师两种角色,登录成功分别进入不同的界面

代码:

/**
 * 主启动类
 *
 * @create 2024-01-07
 */
public class MainFrame {
    public static final JFrame frame = new JFrame("学生成绩管理系统");
    //当前登录的用户
    public static User user;

    public static void main(String[] args) {
        frame.setSize(SystemConstant.FRAME_WIDTH, SystemConstant.FRAME_HEIGHT);
        frame.setLayout(null);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(new LoginPanel());
    }

    public static void setContentPanel(JPanel panel) {
        frame.setContentPane(panel);
    }
}
/**
 * 登录
 *
 * @create 2024-01-07
 */
public class LoginPanel extends JPanel {
    public LoginPanel() {
        this.setBounds(0, 0, SystemConstant.FRAME_WIDTH, SystemConstant.FRAME_HEIGHT);
        this.add(new JLabel("用户名"));
        JTextField nameField = new JTextField(10);
        this.add(nameField);

        this.add(new JLabel("密码"));
        JPasswordField passwordField = new JPasswordField(10);
        this.add(passwordField);

        JRadioButton adminRadio = new JRadioButton("管理员", true);
        JRadioButton commonRadio = new JRadioButton("教师");
        ButtonGroup group = new ButtonGroup();
        group.add(adminRadio);
        group.add(commonRadio);
        this.add(adminRadio);
        this.add(commonRadio);

        JButton loginBt = new JButton("登录");
        this.add(loginBt);
        loginBt.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                User user = null;
                String username = nameField.getText();
                String password = new String(passwordField.getPassword());
                JPanel panel = null;
                if (adminRadio.isSelected()) {
//                    user = UserDao.getUserByUserName(username);
                    user = UserDao.getUserByName(username);
                    panel = new AdminPanel();
                } else if (commonRadio.isSelected()) {
                    user = TeacherDao.getUserByName(username);
                    panel = new UserPanel();
                }
                if (user == null || !user.getPassword().equals(password)) {
                    JOptionPane.showMessageDialog(loginBt.getParent(), "密码错误", "系统提示", JOptionPane.WARNING_MESSAGE);
                } else {
                    MainFrame.setContentPanel(panel);
                    MainFrame.user = user;
                }
            }
        });
    }
}

3、管理员登录成功内容页面

JavaSwing成绩管理系统(含源码)_第3张图片

public class AdminPanel extends JPanel {
    private static JDesktopPane contentPanel = new JDesktopPane();

    public AdminPanel() {
        this.setBounds(0, 0, SystemConstant.FRAME_WIDTH, SystemConstant.FRAME_HEIGHT);
        contentPanel.setBounds(0, 20, SystemConstant.FRAME_WIDTH, SystemConstant.FRAME_HEIGHT - 50);
        this.add(contentPanel, BorderLayout.CENTER);
        JMenuBar menuBar = new JMenuBar();
        JMenu studentMenu = new JMenu("学生管理");
        JMenu projectMenu = new JMenu("课程管理");
        JMenu paiMenu = new JMenu("排课");
        JMenu systemMenu = new JMenu("系统管理");
        menuBar.add(studentMenu);
        menuBar.add(projectMenu);
        menuBar.add(paiMenu);
        menuBar.add(systemMenu);

        JMenuItem logout = new JMenuItem("退出登录");
        systemMenu.add(logout);

        logout.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                contentPanel.removeAll();
                contentPanel.repaint();
                MainFrame.setContentPanel(new LoginPanel());
            }
        });

        studentMenu.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                setContent(new StudentTablePanel

你可能感兴趣的:(项目实战,java,用户界面)