学生社团管理系统(Java+Swing+mysql)(超简陋)

     阅读:23

目录

学生社团管理系统(Java+Swing+mysql)

写在前面:

根据需求分析的输入描绘的社团活动管理系统结构图如下:

用户(社团管理员)登录社团活动管理系统DFD图:

其中活动信息的数据字典如下:

概念设计(E-R图)

制作阶段


学生社团管理系统(Java+Swing+mysql)

写在前面:

        作为一个计本专业大二的学生,单凭学校开设的几门专业课,学到的知识是零散的,不实操的话很难有提升,是不足以我们去完成哪怕一个小小的项目的,所以我们不得不自己去学习和尝试。

       正好我们这学期在学习Java和数据库这两门课,由此开始萌生要开始一个小小的尝试将两个知识应用到实际当中,于是我选择制作一个简单的学生社团活动管理系统(作为两个协会的部长,平时为社团活动没有少操心)。在这个系统的制作过程中不断巩固了自己的Java学习(Java中的异常处理,Java swing,JDBC等)和数据库的实际应用(虽然我们这学期学习的是SQL serve 但MySQL也是大同小异)下面开始进入正题吧!

      首先学习安装了MySQL,是通过这篇教程来安装和配置的嘿嘿MySQL安装教程,然后再找了一个MySQL的可视化应用程序,可以用Navicat(是一只猫),但由于正版要收费作为学生党就没有去费脑筋了,就找了一个口碑不错的免费软件,DBeaver(是一只海狸),可以直接在Microsoft Store里面免费下载。

       然后就开始大概规划这个系统需要的功能,登录注册功能得有吧,然后就是社团和社团活动的增删改查功能得有吧(十分简单的功能)。

        写了一个简单的文档,完成了数据库的设计包括了系统需求分析,各部分具有的功能,绘制了管理系统结构图,数据流DFD图,数据字典,概念设计E-R图等,并进行逻辑设计(关系模式),物理设计(基本表的存储结构)以及数据库的实现。

下面展示文档内部分内容:

根据需求分析的输入描绘的社团活动管理系统结构图如下:

        

社团活动管理功能模块图

用户(社团管理员)登录社团活动管理系统DFD图:

社团管理员登录社团活动管理系统DFD图 

其中活动信息的数据字典如下:

概念设计(E-R图)

 文档内容暂时就展示这么多吧,下面就开始制作阶段:

制作阶段

首先以我的能力还是很难一个一个字的去想去敲代码的,我当然还是借鉴了一些大佬的开发规范和一些源码,在这个过程中也是收获很多很多。

那么就开始吧!

开始之前还是按照规范乖乖建好Dao,Model,Util,View,文件夹。

Dao用来执行数据库与窗体系统程序之间的数据交互;

Model用来创建各实体;

Util用来保存各种工具方法,如JDBC和后面经常会用到的判断输入文本内容是否为空的方法;

View用来实现窗体各部分功能以及可视化的布局;

登录界面

部分代码:

//创建登录界面的frame
	public  LoginView() {
		setFont(new Font("仿宋", Font.PLAIN, 20));
		setResizable(false);
		setTitle("那就先登录吧!");

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 473, 336);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setBackground(Color.ORANGE);



		JLabel lblNewLabel = new JLabel("社团活动管理系统");
		lblNewLabel.setIcon(new ImageIcon(LoginView.class.getResource("/images/logo.png")));
		lblNewLabel.setFont(new Font("宋体", Font.BOLD, 12));
		
		JLabel lblNewLabel_1 = new JLabel("用户名:");
		lblNewLabel_1.setIcon(new ImageIcon(LoginView.class.getResource("/images/userName.png")));
		
		JLabel lblNewLabel_2 = new JLabel("密   码:");
		lblNewLabel_2.setIcon(new ImageIcon(LoginView.class.getResource("/images/password.png")));
		
		JButton btnNewButton = new JButton("登录");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				loginAction(e);
			}
		});
		btnNewButton.setIcon(new ImageIcon(LoginView.class.getResource("/images/login.png")));
		
		JButton btnNewButton_1 = new JButton("重置");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				resultAction(e);
			}
		});
		btnNewButton_1.setIcon(new ImageIcon(LoginView.class.getResource("/images/reset.png")));
		
		userName = new JTextField();
		userName.setColumns(10);
		
		userPassword = new JPasswordField();

		
		JButton btnNewButton_2 = new JButton("注册");
		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				RegisterUser registerUser=new RegisterUser();
				registerUser.setVisible(true);
			}
		});
		btnNewButton_2.setIcon(new ImageIcon(LoginView.class.getResource("/images/me.png")));
		GroupLayout gl_contentPane = new GroupLayout(contentPane);

注册界面:

部分代码:

//注册界面
	public RegisterUser() {
		setTitle("那就先注册吧!");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 509, 437);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setBackground(Color.YELLOW);
		
		JLabel lblNewLabel = new JLabel("开始注册");
		lblNewLabel.setFont(new Font("仿宋", Font.BOLD, 27));
		lblNewLabel.setIcon(new ImageIcon(RegisterUser.class.getResource("/images/logo.png")));
		
		JLabel lblNewLabel_1 = new JLabel("用  户  名:");
		
		name = new JTextField();
		name.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("密        码:");
		
		JLabel lblNewLabel_3 = new JLabel("验  证  码:");
		
		verification = new JTextField();
		verification.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent e) {
				ComperPassword(e);
			}
		});
		verification.setText("");
		verification.setColumns(10);
		
		JLabel lblNewLabel_4 = new JLabel("");
		
		JLabel lblNewLabel_5 = new JLabel("确认密码:");
		
		JButton btnNewButton = new JButton("注册");

系统主界面对社团的管理:

对活动的管理:

添加活动功能部分代码:

public Addact() {
		setTitle("活动添加");
		setIconifiable(true);
		setClosable(true);
		setBounds(100, 100, 500, 501);
		
		JLabel lblNewLabel = new JLabel("活动名称:");
		
		actName = new JTextField();
		actName.setColumns(10);
		
		JLabel lblNewLabel_1 = new JLabel("活动负责人:");
		
		leadername = new JTextField();
		leadername.setColumns(10);
		
		JLabel lblNewLabel_2 = new JLabel("负责人性别:");
		
		JLabel lblNewLabel_3 = new JLabel("活动时间:");
		
		actTime = new JTextField();
		actTime.setColumns(10);
		
		JLabel lblNewLabel_4 = new JLabel("社团名称:");
		
		JLabel lblNewLabel_5 = new JLabel("活动描述:");
		
		actDesc = new JTextArea();
		
		JButton btnNewButton = new JButton("添加");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				addActAction(e);
			}
		});
		btnNewButton.setIcon(new ImageIcon(Addact.class.getResource("/images/add.png")));
		
		JButton btnNewButton_1 = new JButton("重置");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				reset();
			}
		});
		btnNewButton_1.setIcon(new ImageIcon(Addact.class.getResource("/images/reset.png")));
		
		man = new JRadioButton("男");
		man.setSelected(true);
		buttonGroup.add(man);
		
		woman = new JRadioButton("女");
		buttonGroup.add(woman);
		
		actType = new JComboBox();
		GroupLayout groupLayout = new GroupLayout(getContentPane());

总之,虽然完成这个小小的窗体程序花费了我挺多时间吧,但最后感觉还是很值得的,在这个过程中我也在不断学习,不断进步,嗯,还是很开心的!