提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、数据库是什么?
  • 二、使用步骤
    • 1.登录界面

      • (1)与数据库账号密码进行比对
      • (2)注册新账号
    • 2.注册界面

      • (1)输入不能为空,否则会弹出警告
      • (2)按住回车键,光标会跳至下一栏
      • (3)密码与确认密码的比对
      • (4)与数据库信息对接
    • 3.系统界面

      • (1)退出与注销功能
      • (2)修改学生密码
      • (3)查看学生在线情况
      • (4)查看学生账号信息
      • (5)增删改查学生信息
      • (6)特色的管理员系统
  • 总结

前言

学生信息管理系统是针对学校学生处的大量工作处理工作而开发的管理系统 ,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用手机和计算机对学生各种信息进行日常管理,如查询、修改、增加、删除等,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。

一、数据库是什么?

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

二、使用步骤

1.登录界面

部分主要代码如下:

package com.window;
import java.awt.*;
import java.awt.event.ActionListener;/*当前类负责,调用开始的图形界面*/
import javax.swing.*;import com.event.AccountEvent;
import com.event.RegEvent;
import com.stytle.Fronts;public class LoginStart extends JFrame{//可视化窗口FlowLayout flowLayout;//定义一个布局//需要五个标签  和一个文本框  和一个密码框    和一个登录按钮JLabel bgimg;//定义背景    标签JLabel register;//定义注册    标签JLabel account;//定义账号    标签JLabel password;//定义密码    标签JLabel title;//定义标题    标签JTextField accounttext;//输入账号文本JPasswordField passwordtext;//输入密码的框JButton ok;//登录按钮//窗口变量final int WIDTH = 500;//设置顶层框架的宽度final int HEIGHT = 280;//设置顶层框架的高度//定义一个箱子javax.swing.JPanel jPanel_1;//放图片和其他的盘子javax.swing.JPanel jPanel_2;//只放标题javax.swing.JPanel jPanel_3;//放账号密码标题   和编辑框和密码框//监听类的定义RegEvent regevent;//定义注册标签的鼠标监听事件ActionListener lintener_1;public LoginStart(){init();setVisible(true);//设置当前窗口是否可以显示setResizable(false);//窗口大小不可变setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置默认关闭方式validate();//让组件生效}void init() {//定义一个布局flowLayout = new FlowLayout(FlowLayout.CENTER);//标题居中对齐//给盘子1创建对象jPanel_1 = new javax.swing.JPanel();jPanel_1.setBounds(0,0,WIDTH,HEIGHT);jPanel_1.setLayout(null);//设置布局为空//给盘子2创建对象      居中对齐jPanel_2 = new javax.swing.JPanel();jPanel_2.setBounds(0,50,WIDTH,50);//设置当前框口的大小jPanel_2.setLayout(flowLayout);//执行布局jPanel_2.setOpaque(false);//将当前的盘子设置成透明//给盘子3进行初始化jPanel_3 = new javax.swing.JPanel();jPanel_3.setBounds(100,105,300,130);//设置当前框口的大小jPanel_3.setLayout(flowLayout);//执行布局jPanel_3.setOpaque(false);//将当前的盘子设置成透明//jPanel_3.setBorder(BorderFactory.createTitledBorder("基本功能界面"));//确定位置//初始化字体类Fronts fronts = new Fronts();//添加标题this.setTitle("学生信息管理系统");Toolkit kit = Toolkit.getDefaultToolkit();//获取对象大小  //设置窗口位置Dimension screenSize = kit.getScreenSize();int width = screenSize.width;int height = screenSize.height;//获取屏幕高度和宽度int x = (width - WIDTH) / 2;int y = (height - HEIGHT) / 2;this.setSize(WIDTH,HEIGHT);this.setLocation(x,y);//设置位置 和 窗口大小  以上设置背景设置标题//设置背景图片ImageIcon img = new ImageIcon("src/com/img/真布.png");//将图片读取放到img变量里面bgimg = new JLabel(img);bgimg.setBounds(0,0,img.getIconWidth(),img.getIconHeight());//设置背景图片,设置背景位置//添加标题title = new JLabel("学生信息管理系统");title.setFont(fronts.title);title.setForeground(Color.CYAN);//添加账号和密码   还有编辑框account = new JLabel("账号 ");account.setFont(fronts.account);account.setForeground( new Color(238,99,99));//添加账号文本框accounttext = new JTextField(20);accounttext.setFont(fronts.accounttext);accounttext.setForeground( new Color(224,57,151));//添加密码标签password = new JLabel("密码 ");password.setFont(fronts.account);password.setForeground( new Color(238,99,99));//添加密码框passwordtext = new JPasswordField(20);passwordtext.setFont(fronts.accounttext);passwordtext.setForeground( new Color(224,57,151));//登录按钮ok = new JButton("安全登录");ok.setPreferredSize(new Dimension(245,35));//设置按钮大小ok.setFont(fronts.ok);ok.setBackground(new Color(8,189,252));//设置按钮颜色ok.setBounds(80,160,220,33);//注册标签register = new JLabel("注册账号");register.setBounds(10, 210, 100, 40);register.setFont(Fronts.register);register.setForeground(new Color(255,64,64));//添加的操作add(register);jPanel_1.add(register);jPanel_3.add(account);jPanel_3.add(accounttext);jPanel_3.add(password);jPanel_3.add(passwordtext);jPanel_3.add(ok);jPanel_2.add(title);jPanel_1.add(jPanel_2);jPanel_1.add(jPanel_3);jPanel_1.add(bgimg);//将图片放到盘子里面this.add(jPanel_1);ok.setName("ok");allEvent();}//所以处理事件都在这个地方写void allEvent(){regevent = new RegEvent();lintener_1 = new AccountEvent();register.addMouseListener(regevent);ok.addActionListener(lintener_1);}}

登录画面如图:

(1)与数据库账号密码进行比对

部分主要代码如下:

public static boolean loginAccount(String account,String password){PreparedStatement sql;PreparedStatement sql01;ResultSet rs;MySql mySql=new MySql("root","123456");String url="select account,password from students01 where account=? and password=? ";String url01="update students01 set start = '1' where account = ? ";try {sql=mySql.con.prepareStatement(url);sql.setString(1,account);sql.setString(2,password);rs=sql.executeQuery();if (rs.next()){sql01=mySql.con.prepareStatement(url01);sql01.setString(1,account);sql01.executeUpdate();return true;}else{return false;}}catch (SQLException e){e.printStackTrace();return false;}}
if (account.equals("ygy")){JOptionPane.showMessageDialog(null,"尊敬的管理员"+account+",您已上线!","恭喜",JOptionPane.WARNING_MESSAGE);}else {JOptionPane.showMessageDialog(null,"用户已上线!","恭喜",JOptionPane.WARNING_MESSAGE);}

操作后如下图所示:

管理员登录成功:

登录失败:

(2)注册新账号

代码如下:

弹出注册窗口

public void mouseClicked(MouseEvent e) {// TODO Auto-generated method stub//当鼠标左键按下的时候才会触发事件if(e.getButton() == MouseEvent.BUTTON1){Register register = new Register();register01=register;}}

实际操作后便进入注册界面

2.注册界面

部分主要代码:

package com.window;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
/*当前类主要负责注册界面的窗口*/
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import java.awt.event.*;import com.event.AccountEvent;
import com.stytle.Fronts;import java.awt.*;
public class Register extends JFrame{FlowLayout flowLayout;//定义一个布局//定义窗口的高度与宽度final int WIDTH = 410;//设置顶层框架的宽度final int HEIGHT = 345;//设置顶层框架的高度//定义箱子javax.swing.JPanel jPanel_1;//放图片和其他的盘子javax.swing.JPanel jPanel_2;//放标题javax.swing.JPanel jPanel_3;//放标题//定义监听ActionListener listener_1;//第一个账号文本框的监听ActionListener listener_2;//定义按钮和标签JLabel bgimg;//定义背景    标签JLabel title;//定义标题    标签JLabel name;//定义姓名    标签public static JTextField nametext;//定义姓名文本框JLabel account;//定义账号   标签public static JTextField accounttext;//定义账号文本框JLabel password;//定义密码   标签public static JPasswordField passwordtext;//定义密码文本框JLabel okpassword;//定义确认密码   标签public static JPasswordField okpasswordtext;//定义确认密码文本框public static JButton reg;//注册按钮public Register(){init();setVisible(true);//设置当前窗口是否可以显示setResizable(false);//窗口大小不可变setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置默认关闭方式validate();//让组件生效}void init(){//定义布局flowLayout = new FlowLayout(FlowLayout.CENTER);//居中对齐//先设置窗口显示的位置//设置当前窗口的大小Toolkit kit = Toolkit.getDefaultToolkit();//获取对象大小  //设置窗口位置Dimension screenSize = kit.getScreenSize();int width = screenSize.width;int height = screenSize.height;//获取屏幕高度和宽度int x = (width - WIDTH) / 2;int y = (height - HEIGHT) / 2;this.setBounds(x, y, WIDTH,HEIGHT );//设置位置 和 窗口大小  以上设置背景设置标题//设置最低层布局为空//this.setLayout(null);//设置盘子大小jPanel_1 = new javax.swing.JPanel();//声明jPanel_1.setPreferredSize(new Dimension(WIDTH,HEIGHT));jPanel_1.setLayout(null);//设置布局jPanel_1.setOpaque(false);//将当前盘子设置成透明//设置背景图片ImageIcon img = new ImageIcon("src/com/img/狐狸.jpg");//将图片读取放到img变量里面bgimg = new JLabel(img);bgimg.setBounds(0,0,img.getIconWidth(),img.getIconHeight());//设置背景图片,设置背景位置//设置一个标题Fronts fronts = new Fronts();title = new JLabel("学生信息管理系统账号注册");title.setFont(fronts.title);title.setForeground(Color.GRAY);//对箱子二的内容进行初始化jPanel_2 = new javax.swing.JPanel();jPanel_2.setBounds(0, 30, WIDTH - 10, 70);jPanel_2.setOpaque(false);//将当前盘子设置成透明jPanel_2.setLayout(flowLayout);//设置布局//对箱子三的内容进行初始化jPanel_3 = new javax.swing.JPanel();jPanel_3.setBounds(25, 100,350 , 200);jPanel_3.setOpaque(false);//将当前盘子设置成透明jPanel_3.setLayout(flowLayout);//设置布局//对第一行数据进行初始化name = new JLabel("姓        名:");name.setFont(fronts.account);nametext = new JTextField(20);//文本框的宽度为20name.setForeground(new Color(102,102,102));nametext.setForeground(new Color(236,205,186));nametext.setPreferredSize(new Dimension(15,28));nametext.setFont(Fronts.accounttext);//第二行 account = new JLabel("账        号:");accounttext = new JTextField(20);//文本框的宽度为20account.setFont(fronts.account);account.setForeground(new Color(102,102,102));accounttext.setForeground(new Color(236,205,186));accounttext.setPreferredSize(new Dimension(15,28));accounttext.setFont(Fronts.accounttext);//第三行password = new JLabel("密        码:");passwordtext = new JPasswordField(20);//文本框的宽度为20password.setFont(fronts.account);password.setForeground(new Color(102,102,102));passwordtext.setForeground(new Color(236,205,186));passwordtext.setPreferredSize(new Dimension(15,28));passwordtext.setFont(Fronts.accounttext);//第四行okpassword = new JLabel("确认密码:");okpasswordtext = new JPasswordField(20);//文本框的宽度为15okpassword.setFont(fronts.account);okpassword.setForeground(new Color(102,102,102));okpasswordtext.setForeground(new Color(236,205,186));okpasswordtext.setPreferredSize(new Dimension(15,28));okpasswordtext.setFont(Fronts.accounttext);//第五行reg = new JButton("注        册");reg.setPreferredSize(new Dimension(290,30));reg.setFont(fronts.ok);reg.setBackground(new Color(240,255,240));//按钮背景颜色reg.setForeground(new Color(169,169,169));//按钮字体颜色//第一行jPanel_3.add(name);jPanel_3.add(nametext);jPanel_3.setBorder(BorderFactory.createTitledBorder("账号注册界面"));//测试//第二行jPanel_3.add(account);jPanel_3.add(accounttext);//第三行jPanel_3.add(password);jPanel_3.add(passwordtext);//第四行jPanel_3.add(okpassword);jPanel_3.add(okpasswordtext);//第五行jPanel_3.add(reg);jPanel_1.add(jPanel_3);jPanel_2.add(title);jPanel_1.add(jPanel_2);jPanel_1.add(bgimg);this.add(jPanel_1);//将箱子1添加到最底层setAllTag();allEvent();}void allEvent(){listener_1 = new AccountEvent();nametext.addActionListener(listener_1);accounttext.addActionListener(listener_1);passwordtext.addActionListener(listener_1);okpasswordtext.addActionListener(listener_1);reg.addActionListener(listener_1);}void setAllTag(){nametext.setName("nametext");accounttext.setName("accounttext");passwordtext.setName("passwordtext");okpasswordtext.setName("okpasswordtext");reg.setName("reg");}
}

注册界面画面如下:

(1)输入不能为空,否则会弹出警告

代码如下:

  void Jbutton() {//判断确认两密码是否一致//判断姓名不能为空//账号不能为空//确认密码不能为空//密码不能为空boolean name1 = Register.nametext.getText().equals("");boolean account1 = Register.accounttext.getText().equals("");//获取密码char[] str = Register.passwordtext.getPassword();String passwordtext = new String(str);boolean password1 = passwordtext.equals("");//获取确认密码str = Register.okpasswordtext.getPassword();String okpasswordtext = new String(str);boolean okpassword1 = okpasswordtext.equals("");System.out.println(okpasswordtext);if(name1 == true) {JOptionPane.showMessageDialog(null, "姓名不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(account1 == true){JOptionPane.showMessageDialog(null, "账号不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(password1 == true) {JOptionPane.showMessageDialog(null, "密码不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(okpassword1 == true) {JOptionPane.showMessageDialog(null, "确认密码不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(passwordtext.equals(okpasswordtext) == false) {//如果确认密码和密码一致JOptionPane.showMessageDialog(null, "密码输入不一致","注册消息",JOptionPane.WARNING_MESSAGE);}else {//姓名文本String name = Register.nametext.getText();//账号文本String account = Register.accounttext.getText();//密码文本String password = passwordtext;java.sql.Connection con = Mysqld.con;PreparedStatement preSql;String Uri ="insert into user values(?,?,?,?)";try {preSql = con.prepareStatement(Uri);preSql.setString(1, name);preSql.setString(2, account);preSql.setString(3, password);preSql.setString(4, "0");int ok = preSql.executeUpdate();JOptionPane.showMessageDialog(null, "注册成功","注册消息",JOptionPane.WARNING_MESSAGE);//sql = con.createStatement();//rs = sql.execute(password);}catch(SQLException e) {JOptionPane.showMessageDialog(null, "当前账号已存在","注册消息",JOptionPane.WARNING_MESSAGE);}}}

演示如下:

(2)按住回车键,光标会跳至下一栏

代码如下:

package com.event;
/*文本框的监听,设置焦点 */
import java.awt.event.*;
import java.sql.PreparedStatement;
import java.sql.*;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;import com.mysqld.*;
import com.sun.jdi.connect.spi.Connection;
import com.window.Register;
public class AccountEvent implements ActionListener {JTextField alluse;JButton allJbutton;Statement sql;boolean rs;@Overridepublic void actionPerformed(ActionEvent e) {try {alluse = (JTextField) e.getSource();if(alluse != null) {alluee();}}catch(Exception e1) {allJbutton =(JButton) e.getSource();if(allJbutton.getName() == "reg") {Jbutton();}}//登录按钮的触发事件}void alluee() {if(alluse.getName() == "nametext"){Register.accounttext.requestFocus();}if(alluse.getName() == "accounttext"){Register.passwordtext.requestFocus();}if(alluse.getName() == "passwordtext"){Register.okpasswordtext.requestFocus(); }if(alluse.getName() == "okpasswordtext"){Register.reg.requestFocus();}}

演示如下:

未按回车键时:

按下回车时:

(3)密码与确认密码的比对

代码如下:

  void Jbutton() {//判断确认两密码是否一致//判断姓名不能为空//账号不能为空//确认密码不能为空//密码不能为空boolean name1 = Register.nametext.getText().equals("");boolean account1 = Register.accounttext.getText().equals("");//获取密码char[] str = Register.passwordtext.getPassword();String passwordtext = new String(str);boolean password1 = passwordtext.equals("");//获取确认密码str = Register.okpasswordtext.getPassword();String okpasswordtext = new String(str);boolean okpassword1 = okpasswordtext.equals("");System.out.println(okpasswordtext);if(name1 == true) {JOptionPane.showMessageDialog(null, "姓名不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(account1 == true){JOptionPane.showMessageDialog(null, "账号不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(password1 == true) {JOptionPane.showMessageDialog(null, "密码不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(okpassword1 == true) {JOptionPane.showMessageDialog(null, "确认密码不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(passwordtext.equals(okpasswordtext) == false) {//如果确认密码和密码一致JOptionPane.showMessageDialog(null, "密码输入不一致","注册消息",JOptionPane.WARNING_MESSAGE);}else {//姓名文本String name = Register.nametext.getText();//账号文本String account = Register.accounttext.getText();//密码文本String password = passwordtext;java.sql.Connection con = Mysqld.con;PreparedStatement preSql;String Uri ="insert into user values(?,?,?,?)";try {preSql = con.prepareStatement(Uri);preSql.setString(1, name);preSql.setString(2, account);preSql.setString(3, password);preSql.setString(4, "0");int ok = preSql.executeUpdate();JOptionPane.showMessageDialog(null, "注册成功","注册消息",JOptionPane.WARNING_MESSAGE);//sql = con.createStatement();//rs = sql.execute(password);}catch(SQLException e) {JOptionPane.showMessageDialog(null, "当前账号已存在","注册消息",JOptionPane.WARNING_MESSAGE);}}}}

演示如下:

(4)与数据库信息对接

代码如下:

package com.event;
/*文本框的监听,设置焦点 */
import java.awt.event.*;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;import com.mysqld.*;
import com.window.Register;
public class AccountEvent implements ActionListener {JTextField allUse;JButton allJButton;MySql mySql;@Overridepublic void actionPerformed(ActionEvent e) {try {allUse = (JTextField) e.getSource();if(allUse != null) {allUser();}}catch(Exception e1) {allJButton =(JButton) e.getSource();if(allJButton.getName() == "reg") {JButton();}}}void allUser() {if(allUse.getName() == "nametext"){Register.accountText.requestFocus();}if(allUse.getName() == "accounttext"){Register.passwordText.requestFocus();}if(allUse.getName() == "passwordtext"){Register.okPasswordText.requestFocus();}if(allUse.getName() == "okpasswordtext"){Register.reg.requestFocus();}}void JButton() {//判断确认两密码是否一致//判断姓名不能为空//账号不能为空//确认密码不能为空//密码不能为空boolean name1 = Register.nameText.getText().equals("");boolean account1 = Register.accountText.getText().equals("");//获取密码char[] str = Register.passwordText.getPassword();String passwordText = new String(str);boolean password1 = passwordText.equals("");//获取确认密码str = Register.okPasswordText.getPassword();String okPasswordText = new String(str);boolean okPassword1 = okPasswordText.equals("");System.out.println(okPasswordText);if(name1) {JOptionPane.showMessageDialog(null, "姓名不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(account1){JOptionPane.showMessageDialog(null, "账号不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(password1) {JOptionPane.showMessageDialog(null, "密码不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(okPassword1) {JOptionPane.showMessageDialog(null, "确认密码不能为空","注册消息",JOptionPane.WARNING_MESSAGE);}else if(!passwordText.equals(okPasswordText)) {//如果确认密码和密码一致JOptionPane.showMessageDialog(null, "密码输入不一致","注册消息",JOptionPane.WARNING_MESSAGE);}else {//姓名文本String name = Register.nameText.getText();//账号文本String account = Register.accountText.getText();//密码文本String password = passwordText;mySql=new MySql("root","123456");PreparedStatement sql;PreparedStatement sql01;ResultSet rs;String url ="insert into students01 values(?,?,?,?,'无','无','无','无','无','无','无')";String url01="select * from students01 where account = ? ";try {sql01=mySql.con.prepareStatement(url01);sql01.setString(1,account);rs=sql01.executeQuery();if (rs.next()){JOptionPane.showMessageDialog(null, "当前账号已存在","注册消息",JOptionPane.WARNING_MESSAGE);}else {sql = mySql.con.prepareStatement(url);sql.setString(1, name);sql.setString(2, account);sql.setString(3, password);sql.setString(4,"0");sql.executeUpdate();JOptionPane.showMessageDialog(null, "注册成功","注册消息",JOptionPane.WARNING_MESSAGE);RegEvent.register01.dispose();}mySql.con.close();}catch(SQLException e) {e.printStackTrace();}}}
}

演示如下:

3.系统界面

部分主要代码如下:

package com.window;import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.util.Vector;import javax.swing.*;
import javax.swing.table.*;import static javax.swing.JFrame.*;
public class Manage extends JFrame{FlowLayout flowLayout;//定义一个布局JLabel bgimg;//定义背景    标签JMenuBar jmenubar;//定义一个菜单栏JMenu jmenu,jmenu1;//定义一个菜单JMenuItem item1,item2,item3,item4;JMenuItem item1_1,item1_2;//定义一个盘子javax.swing.JPanel jPanel_1;javax.swing.JPanel jPanel_2;//用来放表格//定义标签JLabel name;JTextField nametext;ButtonGroup group;JRadioButton Men,Women;JLabel age;JTextField agetext;JLabel bath;JTextField bathtext;JLabel number;JTextField numbertext;JLabel political;JTextField politicaltext;JLabel address;JTextField addresstext;JLabel dianhua;JTextField dianhuatext;JLabel sushe;JTextField sushetext;JButton add,del,change,show,reset;JTextArea resultText;//显示结果//表格的数据Object columns[] = {"姓名","性别","年龄","出生日期","学号","政治面貌","家庭住址","电话","宿舍号"};//标题信息JTable tableL = null;JScrollPane jscrollpane;static Vector rwo;static Object a[][];static int row;static DefaultTableModel model;static TableColumnModel columnModel;//定义窗口的高度和宽度//窗口变量final int WIDTH = 680;//设置顶层框架的宽度final int HEIGHT = 775;//设置顶层框架的高度public Manage(){init();setVisible(true);//设置当前窗口是否可以显示setResizable(false);//窗口大小不可变setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置默认关闭方式validate();//让组件生效}void init() {flowLayout = new FlowLayout(FlowLayout.CENTER);//居中对齐//设置最底层的布局this.setLayout(null);this.setTitle("学生信息管理系统");//设置标题Toolkit kit = Toolkit.getDefaultToolkit();//获取对象大小  //设置窗口位置Dimension screenSize = kit.getScreenSize();int width = screenSize.width;int height = screenSize.height;//获取屏幕高度和宽度int x = (width - WIDTH) / 2;int y = (height - HEIGHT) / 2;this.setSize(WIDTH,HEIGHT);this.setLocation(x,y);//设置位置 和 窗口大小  以上设置背景设置标题//设置背景图片ImageIcon img = new ImageIcon("src/com/img/5.jpeg");//将图片读取放到img变量里面bgimg = new JLabel(img);bgimg.setBounds(0,0,img.getIconWidth(),100);//设置背景图片,设置背景位置//添加菜单栏jmenubar = new JMenuBar();//构造菜单条jmenu = new JMenu("管理");jmenu1 = new JMenu("账号");item1 = new JMenuItem("查看在线人数",new ImageIcon("src/com/img/1.png"));item2 = new JMenuItem("查看所以账号信息",new ImageIcon("src/com/img/2.png"));item3 = new JMenuItem("更改其他学生信息",new ImageIcon("src/com/img/3.png"));item4 = new JMenuItem("更改当前账号信息",new ImageIcon("src/com/img/4.png"));item1_1 = new JMenuItem("登录",new ImageIcon("src/com/img/1.png"));item1_2 = new JMenuItem("注销",new ImageIcon("src/com/img/4.png"));jmenu.add(item1);jmenu.add(item2);jmenu.add(item3);jmenu.add(item4);jmenu1.add(item1_1);jmenu1.add(item1_2);jmenubar.add(jmenu);jmenubar.add(jmenu1);//初始化第二个组件jPanel_1 = new javax.swing.JPanel();jPanel_1.setLayout(flowLayout);//居中对齐jPanel_1.setBorder(BorderFactory.createTitledBorder("基本信息处理"));//测试jPanel_1.setBounds(0, 100, WIDTH-14, 300);//添加按钮name = new JLabel("  姓        名");//添加文本nametext = new JTextField(20);//添加性别group = new ButtonGroup();Men =new JRadioButton("男");Women =new JRadioButton("女");group.add(Men);group.add(Women);//添加年龄age = new JLabel("   年   龄");agetext = new JTextField(20);//添加出生日期bath = new JLabel("  出生日期");bathtext = new JTextField(20);//添加学号number = new JLabel("                             学   号");numbertext = new JTextField(20);//添加政治面貌political = new JLabel("  政治面貌");politicaltext = new JTextField(20);//添加家庭住址address = new JLabel("                         家庭住址");addresstext = new JTextField(20);//添加电话dianhua = new JLabel("  电        话");dianhuatext = new JTextField(20);//添加宿舍号sushe = new JLabel("                            宿舍号");sushetext = new JTextField(20);//添加五个按钮add = new JButton("增加数据");del = new JButton("删除数据");change = new JButton("修改数据");show = new JButton("查找数据");reset = new JButton("重置数据");//设置第二个箱子的布局jPanel_2 = new javax.swing.JPanel();jPanel_2.setLayout(flowLayout);jPanel_2.setBounds(0, 280, WIDTH-14, 200);jPanel_2.setBorder(BorderFactory.createTitledBorder("学生数据信息显示"));//测试table();//添加显示结果信息文本框resultText = new JTextArea();resultText.setBounds(5, 500, WIDTH-23,200);resultText.setBorder(BorderFactory.createTitledBorder("账号信息显示"));//测试resultText.setText("");jPanel_1.add(name);jPanel_1.add(nametext);jPanel_1.add(Men);jPanel_1.add(Women);jPanel_1.add(age);jPanel_1.add(agetext);jPanel_1.add(bath);jPanel_1.add(bathtext);jPanel_1.add(number);jPanel_1.add(numbertext);jPanel_1.add(political);jPanel_1.add(politicaltext);jPanel_1.add(address);jPanel_1.add(addresstext);jPanel_1.add(dianhua);jPanel_1.add(dianhuatext);jPanel_1.add(sushe);jPanel_1.add(sushetext);jPanel_1.add(add);jPanel_1.add(del);jPanel_1.add(change);jPanel_1.add(show);jPanel_1.add(reset);jPanel_2.add(jscrollpane);this.add(jPanel_2);this.add(jPanel_1);this.add(jmenubar);this.add(bgimg);this.setJMenuBar(jmenubar);this.add(resultText);}void table(){tableL = getTable();jscrollpane = new JScrollPane(tableL);//添加一个游览窗格jscrollpane.setPreferredSize(new Dimension(650,160));//给窗格设置大小tableL.setPreferredSize(new Dimension(200,160));//给表格设置大小jscrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);//将滑动组件显示在窗口中}JTable getTable(){if(tableL == null) {tableL = new JTable();//创建int[] columnWidth= {70,70,70,70,70,70,70,70,70};//设置宽列model = new DefaultTableModel() {public boolean isCellEditable(int row,int colum) {return false;}};//列宽和行数  并且让表格不可编辑model.setColumnIdentifiers(columns);tableL.setModel(model);//设置表格的模式columnModel = tableL.getColumnModel();//获取表格的控制tableL.getTableHeader().setReorderingAllowed(false);//让表格不可拖动tableL.getTableHeader().setResizingAllowed(false);//让表格不可拖动int count = columnModel.getColumnCount();//返回列数和行数for(int i = 0;i < count;i ++) {javax.swing.table.TableColumn column = columnModel.getColumn(i);//返回列表中的对象column.setPreferredWidth(columnWidth[i]);}rwo = new Vector(9);}return tableL;}}

演示如下:

(1)退出与注销功能

代码如下:

(2)修改学生密码

代码如下:

判断是否为管理员:

if (jMenuItem.getName().equals("item3")){if (account.equals("ygy")){ChangeAccount changeAccount=new ChangeAccount();}else {JOptionPane.showMessageDialog(null,"您不是管理员,不能修改他人密码!!","警告",JOptionPane.WARNING_MESSAGE);}}if (jMenuItem.getName().equals("item4")){ChangeMyAccount changeMyAccount=new ChangeMyAccount();}

学生修改自己密码:

public static void changePassword(String account,String password){MySql mySql=new MySql("root","123456");PreparedStatement sql;String url="update students01 set password = ? where account = ?";try {sql=mySql.con.prepareStatement(url);sql.setString(1,password);sql.setString(2,account);sql.executeUpdate();JOptionPane.showMessageDialog(null,"修改成功!","恭喜",JOptionPane.WARNING_MESSAGE);}catch (SQLException e){e.printStackTrace();}}

管理员修改密码:

public static void changeOtherMessage(){MySql mySql=new MySql("root","123456");PreparedStatement sql;String url="update students01 set password = ? where name = ? ";try {int t=0;String name= ChangeAccount.nameText.getText();String password=new String(ChangeAccount.passwordText.getPassword());sql=mySql.con.prepareStatement(url);sql.setString(1,password);sql.setString(2,name);t=sql.executeUpdate();if (t!=0){JOptionPane.showMessageDialog(null,"修改成功!","恭喜",JOptionPane.WARNING_MESSAGE);}else {JOptionPane.showMessageDialog(null,"请输入正确的姓名!","警告",JOptionPane.WARNING_MESSAGE);}}catch (SQLException e){e.printStackTrace();}}

(3)查看学生在线情况

代码如下:

public static void OnlineAccount(){MySql mySql=new MySql("root","123456");PreparedStatement sql;PreparedStatement sql01;ResultSet rs;String url="select * from students01";try {sql=mySql.con.prepareStatement(url);rs=sql.executeQuery();Manage.resultText.setText("");Manage.resultText.setText("姓名\t学号\t状态\n");while (rs.next()){String name=rs.getString(1);String account=rs.getString(2);String password=rs.getString(3);String start=rs.getString(4);if (start.equals("1")){System.out.println("在线");String url01=Manage.resultText.getText()+name+"\t"+account+"\t"+password+"\t"+"在线"+"\n";Manage.resultText.setText(url01);}}}catch (SQLException e){e.printStackTrace();}}

演示如下:

(4)查看学生账号信息

代码如下:

public static void OnlineAccount(){MySql mySql=new MySql("root","123456");PreparedStatement sql;PreparedStatement sql01;ResultSet rs;String url="select * from students01";try {sql=mySql.con.prepareStatement(url);rs=sql.executeQuery();Manage.resultText.setText("");Manage.resultText.setText("姓名\t学号\t状态\n");while (rs.next()){String name=rs.getString(1);String account=rs.getString(2);String password=rs.getString(3);String start=rs.getString(4);if (start.equals("1")){System.out.println("在线");String url01=Manage.resultText.getText()+name+"\t"+account+"\t"+password+"\t"+"在线"+"\n";Manage.resultText.setText(url01);}}}catch (SQLException e){e.printStackTrace();}}

演示如下:

(5)增删改查学生信息

代码如下:

增:

public static void addStudent(String name,String account,String password,String sex,String age,String birth,String politic,String address,String phone,String dormitory){MySql mySql=new MySql("root","123456");PreparedStatement sql;PreparedStatement sql01;ResultSet rs;String url="insert into students01 values (?,?,?,?,?,?,?,?,?,?,?)";String url01="select * from students01 where account = ?";try {sql01=mySql.con.prepareStatement(url01);sql01.setString(1,account);rs=sql01.executeQuery();if (rs.next()){JOptionPane.showMessageDialog(null,"所添加学号已存在!","警告",JOptionPane.WARNING_MESSAGE);}else {sql=mySql.con.prepareStatement(url);sql.setString(1,name);sql.setString(2,account);sql.setString(3,password);sql.setString(4,"0");sql.setString(5,sex);sql.setString(6,age);sql.setString(7,birth);sql.setString(8,politic);sql.setString(9,address);sql.setString(10,phone);sql.setString(11,dormitory);sql.executeUpdate();JOptionPane.showMessageDialog(null,"添加成功!\n\r初始密码为123456","恭喜",JOptionPane.WARNING_MESSAGE);}}catch (SQLException e){e.printStackTrace();}}

删:

public static void delAccount(String account){MySql mySql=new MySql("root","123456");PreparedStatement sql;String url="delete from students01 where account = ?";int t=0;try {sql=mySql.con.prepareStatement(url);sql.setString(1,account);t=sql.executeUpdate();if (t!=0){JOptionPane.showMessageDialog(null,"删除成功!","恭喜",JOptionPane.WARNING_MESSAGE);}else{JOptionPane.showMessageDialog(null,"账号不存在!","警告",JOptionPane.WARNING_MESSAGE);}}catch (SQLException e){e.printStackTrace();}}

改:

public static void changeAccount(String account,String sex,String age,String birth,String politic,String address,String phone,String dormitory){MySql mySql=new MySql("root","123456");PreparedStatement sql;PreparedStatement sql01;ResultSet rs;int t=0;String url="update students01 set sex = ?,age = ?,birth = ?,politic = ?,address = ?,phone = ?,dormitory = ? where account = ?";String url01="select * from students01 where account = ?";try {sql=mySql.con.prepareStatement(url);sql.setString(1,sex);sql.setString(2,age);sql.setString(3,birth);sql.setString(4,politic);sql.setString(5,address);sql.setString(6,phone);sql.setString(7,dormitory);sql.setString(8,account);t=sql.executeUpdate();System.out.println("t="+t);if (t!=0){JOptionPane.showMessageDialog(null,"修改成功!","恭喜",JOptionPane.WARNING_MESSAGE);}else {sql01=mySql.con.prepareStatement(url01);sql01.setString(1,account);rs=sql01.executeQuery();if (!rs.next()){JOptionPane.showMessageDialog(null,"用户不存在!","警告",JOptionPane.WARNING_MESSAGE);}}}catch (SQLException e){}}

查:

public static void searchAll(){MySql mySql=new MySql("root","123456");PreparedStatement sql;Manage.model.setRowCount(0);ResultSet rs;String url="select name,account,sex,age,birth,politic,address,phone,dormitory from students01";try {sql=mySql.con.prepareStatement(url);rs=sql.executeQuery();LoginEvent.addTable(rs);}catch (SQLException e){}}public static void searchSingle(String account){MySql mySql=new MySql("root","123456");PreparedStatement sql;Manage.model.setRowCount(0);ResultSet rs;String url="select name,account,sex,age,birth,politic,address,phone,dormitory from students01 where account = ?";try {sql=mySql.con.prepareStatement(url);sql.setString(1,account);rs=sql.executeQuery();if (!rs.next()){JOptionPane.showMessageDialog(null,"未找到该用户!\r\n请检查学号是否正确!","警告",JOptionPane.WARNING_MESSAGE);}else {rs.beforeFirst();LoginEvent.addTable(rs);}}catch (SQLException e){e.printStackTrace();}}
}

管理员系统:

if (MySql.loginAccount(account,password)){if (account.equals("ygy")){JOptionPane.showMessageDialog(null,"尊敬的管理员"+account+",您已上线!","恭喜",JOptionPane.WARNING_MESSAGE);}else {JOptionPane.showMessageDialog(null,"用户已上线!","恭喜",JOptionPane.WARNING_MESSAGE);}this.account=account;//也要写入状态manage=new Manage();StudentSystem.loginStart.dispose();}else {JOptionPane.showMessageDialog(null,"登录失败!检查账号密码是否正确!","警告",JOptionPane.WARNING_MESSAGE);}

git的提交(截图):

git地址:https://gitee.com/just-want-to-pass/student-manage

该小组为二人组,以下为分工情况:

组长负责模块

数据库的连接,各个按钮之间的监听,与界面之间的相互衔接,同时负责后期处理

组员负责模块

各个界面的设计,菜单栏的组件设计。

总结

基本完成了项目要求,但部分功能尚未完善。未来将GUI换成web界面并完善检索功能。

学生基本信息管理系统相关推荐

  1. java ee学生管理系统_javaEE 学生基本信息管理系统

    javaEE 学生基本信息管理系统 软 件 学 院课程设计报告书课程名称 Java EE 课程设计 设计题目 学生基本信息管理系统 专业班级 学 号 姓 名 指导教师 2011 年 12 月1 设计时 ...

  2. 计算机实习项目:学生基本信息管理系统

    一.开发任务 开发任务的具体要求 实现平台是VisualStudio2022,大多数同学用的应该是devc++,区别主要体现在VisualStudio中scanf需要用scanf_s替代,gets需要 ...

  3. 【Java课程设计】基于Java Swing+MySQL的学生基本信息管理系统----附git仓库地址

    一.项目简介 功能描述: 基于Java Swing+MySQL的学生基本信息管理系统,支持对学院.班级.学生信息的增删改查. 参考git地址或博客地址: https://www.bilibili.co ...

  4. 新生基本信息管理系统java_Java课程设计 学生基本信息管理系统 团队博客

    学生基本信息管理系统团队博客 项目git地址 项目git提交记录截图 项目功能架构图与主要功能流程图 项目功能构架图: 主要功能流程图: 项目运行截图 项目关键代码 连接数据库的类代码: import ...

  5. 学生信息管理系统设计 java_Java程序设计——学生基本信息管理系统(团队+个人)...

    学生信息管理系统(From:单身贵族) 团队部分 一.团队介绍("单身贵族"): 吴剑通[组长]:201521123056,唯一队员,网络1512班,团支书 三.项目git提交记录 ...

  6. java课程设计学生信息管理_JAVA课程设计---学生基本信息管理系统

    1.团队课程设计博客链接 2.个人负责模块或任务说明 函数 功能说明 Search 查找学生信息,分为两种查找方式,一种是按条件查找,另一种是组合条件查找 CombineSearch 组合查找的函数 ...

  7. java 管理 程序设计_Java程序设计——学生基本信息管理系统

    1.团队课程设计博客链接 2.个人负责模块说明 查询和修改功能 3.个人代码提交记录 4.自己负责模块或任务详细说明 代码结构为: ,DB包为数据库操作,sims包为操作界面以及各个功能. 本人负责的 ...

  8. java编写管理系统_用java编写学生信息管理系统

    <用java编写学生信息管理系统>由会员分享,可在线阅读,更多相关<用java编写学生信息管理系统(7页珍藏版)>请在人人文库网上搜索. 1.用java编写学生信息管理系统im ...

  9. 使用Java Swing开发的学生信息管理系统(界面美观)

    设计一个学生基本信息管理系统,实现"系统登录","学生信息增加","学生信息查询","学生信息删除","学生信 ...

最新文章

  1. 嵌入式学习笔记之三 (uboot我来看)
  2. 计算机设备图标怎么删除,电脑设备和驱动器中没用的图标怎么删除? 我的电脑中手机...
  3. 这13个开源GIS软件,你了解几个?【转】
  4. php中如何让这段东西不显示出来,数据显示处理,该怎么处理
  5. jzoj4019-Path【dp】
  6. linux 常用命令02--文件属性 以及软硬链接
  7. STM32F407+CubeMX - 使用GPIO翻转+示波器测量函数的执行时间
  8. SPOJ-COT-Count on a tree(树上路径第K小,可持久化线段树)
  9. 用事件驱动编程解救臃肿的代码
  10. 为热门项目 若依(ruoyi) 添加请求日志输出
  11. 此C语言功能---A
  12. 关于取反符号的相关问题
  13. 为什么自建深度学习机器?因为比AWS便宜10倍啊!
  14. 飘刃 v0.0.10 首次发布,超快执行速度的 Vue 项目构建工具
  15. PE使用万能驱动7解决USB3、NVME驱动问题及台式机、笔记本电脑使用PE因驱动问题不能加载硬盘问题(YOGA 14C 因PE加载不了硬盘亲测可用)
  16. win10多合一原版系统_微软Win10专业版制作多合一系统安装盘教程
  17. python100例详解-python案例讲解
  18. Android Studio报错提示:Excepted resource of type color
  19. 12个开源的后台端管理系统
  20. 管理感悟:一种招聘考试的想法

热门文章

  1. Visual Studio DOS程序,点击运行后,DOS窗口关闭
  2. [TDSC 2022] A Multi-shuffler Framework to Establish Mutual Confidence for Secure Federated Learning
  3. 宋浩概率论笔记(一)概率的基本概念
  4. 使用VTK引入基于物理的渲染
  5. 使用MYccl特征定位
  6. 小型板栗自动去皮(壳)机机械设计
  7. LAMP源码编译安装之Apache
  8. Nokia N900刷android 2.3.4
  9. 博客美化-2018年01月16日-元素仿制于明月浩空博客
  10. word拼写检查自定义词典下载_使用自定义词典进行拼写检查