一、系统介绍
本系统实现的以下功能
登录功能:教务人员登录、注销;教师登录、注销;学生登录,注销。
教务人员功能:对学生成绩的查看、修改,学生信息的增删改查,教师信息的增删改查,教务人员的增删,排课信息的增删改查,课程信息的增删改查,班级信息的增删改查;
教师模块功能:发布学生成绩,查看个人信息,修改密码;
学生模块功能:选择课程,查看个人信息,修改密码,查询成绩,查看已选课程。
JDK版本:1.8
数据库:Mysql8.0.13
二、系统展示
1.登录页
2.主页面-教务人员
3.学生成绩管理-教务人员
4.学生信息管理-教务人员
5.教师信息管理-教务人员
6.教务人员信息管理-教务人员
7.排课信息管理-教务人员
8.课程信息管理-教务人员
9.班级信息管理-教务人员
10.关于系统-教务人员
11.主页面-教师模块
12.学生成绩发布-教师模块
13.个人信息查看-教师模块
14.密码修改-教师模块
15.主页面-学生模块
16.课程选择-学生模块
17.个人信息查看-学生模块
18.密码修改-学生模块
19.成绩查看-学生模块
20.已选课程查看-学生模块
三、系统实现
IUserInfoDAO.java
package com.sjsq.dao;
import java.util.List;
import com.sjsq.entity.UserInfo;
/**
*
* @author HZBIN1993
*
* @author shuijianshiqing
*
* @date 2021-01-09
*
*/
public interface IUserInfoDAO {
/**
* 数据库的增加
*
* @param user
* @return
*/
public boolean doCreate(UserInfo user) throws Exception;
/**
* 修改用户
*
* @param user
* @return
* @throws Exception
*/
public boolean doUpdate(UserInfo user) throws Exception;
/**
*
* 删除用户
*
* @param user
* @return
* @throws Exception
*/
public boolean doDelete(String username) throws Exception;
/**
* 数据库查询操作
*
* @param id
* @return
* @throws Exception
*/
public UserInfo findById(String id) throws Exception;
/**
* 做查询操作
*
* @param id
* @return
* @throws Exception
*/
public List<UserInfo> findAll(String keyword) throws Exception;
}
UserInfoDaoImpI.java
package com.sjsq.dao.ImpI;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.sjsq.dao.IUserInfoDAO;
import com.sjsq.entity.UserInfo;
public class UserInfoDaoImpI implements IUserInfoDAO {
private Connection conn = null;
public UserInfoDaoImpI(Connection conn) {
this.conn = conn;
}
@Override
public boolean doCreate(UserInfo user) throws Exception {
// Auto-generated method stub
// 增加信息
boolean flag = false;
PreparedStatement pstmt = null;
String sql = "INSERT INTO UserInfo_tab(userName ,NickName,UserPass,grade)VALUES(?,?,?,?)";
try {
pstmt = this.conn.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getNickName());
pstmt.setString(3, user.getUserPass());
pstmt.setInt(4, user.getGrade());
if (pstmt.executeUpdate() > 0) {
flag = true;
}
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
}
return flag;
}
@Override
public boolean doUpdate(UserInfo user) throws Exception {
// 更新用户信息
boolean flag = false;
PreparedStatement pstmt = null;
String sql = "UPDATE UserInfo_tab SET UserPass=? WHERE UserName=?";
try {
pstmt = this.conn.prepareStatement(sql);
pstmt.setString(1, user.getUserPass());
pstmt.setString(2, user.getUserName());
if (pstmt.executeUpdate() > 0) {
flag = true;
}
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
}
return flag;
}
@Override
public boolean doDelete(String username) throws Exception {
// 删除用户信息
boolean flag = false;
PreparedStatement pstmt = null;
String sql = "DELETE FROM UserInfo_tab WHERE UserName=?";
try {
pstmt = this.conn.prepareStatement(sql);
pstmt.setString(1, username);
if (pstmt.executeUpdate() > 0) {
flag = true;
}
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
}
return flag;
}
@Override
public List<UserInfo> findAll(String keyword) throws Exception {
// 查找用户信息-关键字查找
List<UserInfo> all = new ArrayList<UserInfo>();
PreparedStatement pstmt = null;
String sql = "SELECT ID,UserName,NickName,UserPass,Grade WHERE UserName LIKE ? OR NickName LIKE ?";
try {
pstmt = this.conn.prepareStatement(sql);
pstmt.setString(1, "%" + keyword + "%");
pstmt.setString(2, "%" + keyword + "%");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
UserInfo user = new UserInfo();
user.setID(rs.getInt(1));
user.setUserName(rs.getString(2));
user.setNickName(rs.getString(3));
user.setUserPass(rs.getString(4));
user.setGrade(rs.getInt(5));
all.add(user);
}
rs.close();
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
}
return all;
}
// @Override
public UserInfo findById(String id) throws Exception {
// 查找用户信息-ID查找
UserInfo user = null;
PreparedStatement pstmt = null;
String sql = "SELECT * FROM UserInfo_tab WHERE UserName=?";
try {
pstmt = this.conn.prepareStatement(sql);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
user = new UserInfo();
user.setID(rs.getInt(1));
user.setUserName(rs.getString(2));
user.setNickName(rs.getString(3));
user.setUserPass(rs.getString(4));
user.setGrade(rs.getInt(5));
}
rs.close();
} catch (Exception e) {
throw e;
} finally {
try {
if (pstmt != null) {
pstmt.close();
}
} catch (Exception e) {
}
}
return user;
}
}
UserInfo.java
package com.sjsq.entity;
/**
*
* @author HZBIN1993
*
* @author shuijianshiqing
*
* @date 2021-01-09
*
*/
public class UserInfo {
private int ID;
private String nickName;
private String UserName;
private String UserPass;
private int Grade;
public UserInfo() {
super();
}
public UserInfo(int iD, String userName) {
super();
ID = iD;
UserName = userName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getUserPass() {
return UserPass;
}
public void setUserPass(String userPass) {
UserPass = userPass;
}
public int getGrade() {
return Grade;
}
public void setGrade(int grade) {
Grade = grade;
}
@Override
public String toString() {
// Auto-generated method stub
String grade = "学生";
if (Grade == 0) {
grade = "教务人员";
} else if (Grade == 1) {
grade = "教师";
}
return "ID: " + ID + ",用户名为: " + UserName + "权限为: " + grade;
}
}
DAOFactory.java
package com.sjsq.factory;
import com.sjsq.dao.IArrangeInfoDao;
import com.sjsq.dao.IClassInfoDao;
import com.sjsq.dao.ICourseInfoDao;
import com.sjsq.dao.IScoreInfoDao;
import com.sjsq.dao.IStudentInfoDao;
import com.sjsq.dao.ITeacherInfoDao;
import com.sjsq.dao.IUserInfoDAO;
import com.sjsq.proxy.ArrangeInfoDaoImpIPoxy;
import com.sjsq.proxy.ClassInfoDaoImpIPoxy;
import com.sjsq.proxy.CourseInfoDaoImpIProxy;
import com.sjsq.proxy.ScoreInfoDaoImpIProxy;
import com.sjsq.proxy.StudentInfoDaoImpIProxy;
import com.sjsq.proxy.TeacherInfoDaoImpIProxy;
import com.sjsq.proxy.UserInfoDaoImpIProxy;
/**
* 创建工厂类
*
* @author Administrator
*
*/
public class DAOFactory {
public static IUserInfoDAO getIUserDAOInstance() {
// 用户信息操作工厂
return new UserInfoDaoImpIProxy();
}
public static IScoreInfoDao getScoreDAOInstance() {
// 成绩操作工厂
return new ScoreInfoDaoImpIProxy();
}
public static ICourseInfoDao getCourseDAOInstance() {
// 课程操作工厂
return new CourseInfoDaoImpIProxy();
}
public static IStudentInfoDao getStudentDAOInstance() {
// 学生操作工厂
return new StudentInfoDaoImpIProxy();
}
public static IClassInfoDao getClassDAOInstance() {
// 班级操作工厂
return new ClassInfoDaoImpIPoxy();
}
public static ITeacherInfoDao getTeacherDAOInstance() {
// 老师操作工厂
return new TeacherInfoDaoImpIProxy();
}
public static IArrangeInfoDao getArrangeDaoInstance() {
// 选课信息操作工厂
return new ArrangeInfoDaoImpIPoxy();
}
}
UserInfoDaoImpIProxy.java
package com.sjsq.proxy;
import java.util.List;
import com.sjsq.dao.IUserInfoDAO;
import com.sjsq.dao.ImpI.UserInfoDaoImpI;
import com.sjsq.dbConnect.DataBaseConn;
import com.sjsq.entity.UserInfo;
/**
* 用户信息代理类
*
* @author shuijianshiqing
*
*
*
*/
public class UserInfoDaoImpIProxy implements IUserInfoDAO {
private DataBaseConn dbc = null;
private IUserInfoDAO dao = null;
public UserInfoDaoImpIProxy() {
dbc = new DataBaseConn();
dao = new UserInfoDaoImpI(dbc.getConnection());
}
@Override
public boolean doCreate(UserInfo user) throws Exception {
// 增加用户信息(代理实现)
boolean flag = true;
try {
flag = this.dao.doCreate(user);
} catch (Exception e) {
throw e;
} finally {
this.dbc.close();
}
return flag;
}
@Override
public boolean doUpdate(UserInfo user) throws Exception {
// 更新用户信息(代理实现)
boolean flag = true;
try {
flag = this.dao.doUpdate(user);
} catch (Exception e) {
throw e;
} finally {
this.dbc.close();
}
return flag;
}
@Override
public boolean doDelete(String username) throws Exception {
// 删除用户信息(代理实现)
boolean flag = true;
try {
flag = this.dao.doDelete(username);
} catch (Exception e) {
throw e;
} finally {
this.dbc.close();
}
return flag;
}
@Override
public List<UserInfo> findAll(String keyword) throws Exception {
// 查找用户信息-关键字查找(代理实现)
List<UserInfo> all = null;
try {
all = this.dao.findAll(keyword);
} catch (Exception e) {
throw e;
} finally {
this.dbc.close();
}
return all;
}
@Override
public UserInfo findById(String id) throws Exception {
// 查找用户信息-ID查找(代理实现)
UserInfo user = null;
try {
user = this.dao.findById(id);
} catch (Exception e) {
throw e;
} finally {
this.dbc.close();
}
return user;
}
}
DateUtil.java
package com.sjsq.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class DateUtil {
public static String getAfterDay(String date, int num) {
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
Date dt = null;
try {
dt = parser.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(dt);
calendar.add(Calendar.DATE, num);
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
return simpledateformat.format(calendar.getTime());
}
public static String getBeforeDate(int num) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -num);
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
return simpledateformat.format(calendar.getTime());
}
public static String getDate() {
Date dt = new Date();
long tmLong = dt.getTime();
return (new java.sql.Date(tmLong)).toString();
}
public static String getDateTime() {
Date dt = new Date();
Long tmLong = dt.getTime();
return (new java.sql.Date(tmLong) + " " + (new java.sql.Time(tmLong))).toString();
}
public static java.sql.Date getStringToDate(String day) {
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
Date dt = new Date();
try {
dt = parser.parse(day);
} catch (ParseException e) {
e.printStackTrace();
}
return (new java.sql.Date(dt.getTime()));
}
}
Login.java
package com.sjsq.window;
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemColor;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.net.URL;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import javax.swing.LayoutStyle.ComponentPlacement;
import com.sjsq.entity.UserInfo;
import com.sjsq.factory.DAOFactory;
import com.sjsq.util.GlobalUser;
/**
*
* 登录
*
* @author shuijianshiqing
*
* @date 2021-01-09 20:42
*
*/
public class Login extends JFrame {
private final Action action = new SwingAction();
private JTextField textField;
private final ButtonGroup buttonGroup = new ButtonGroup();
private JPasswordField passwordField;
private JRadioButton rdbtnNewRadioButton = null;
private JRadioButton rdbtnNewRadioButton_1 = null;
private JRadioButton rdbtnNewRadioButton_2 = null;
public Login() {
setResizable(false);
getContentPane().setBackground(SystemColor.menu);
setSize(new Dimension(341, 410));
setTitle("教务管理系统");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnFile = new JMenu("菜单");
mnFile.setFont(new Font("微软雅黑", Font.PLAIN, 16));
menuBar.add(mnFile);
JMenuItem mntmNewMenuItem = new JMenuItem("退出");
mntmNewMenuItem.setFont(new Font("微软雅黑", Font.PLAIN, 16));
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
mntmNewMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_STOP, 0));
mnFile.add(mntmNewMenuItem);
JMenu mnHelp = new JMenu("帮助");
mnHelp.setFont(new Font("微软雅黑", Font.PLAIN, 16));
menuBar.add(mnHelp);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("关于");
mntmNewMenuItem_1.setFont(new Font("微软雅黑", Font.PLAIN, 16));
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_1actionPerformed(e);
}
});
mnHelp.add(mntmNewMenuItem_1);
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setIcon(new ImageIcon(Login.class.getResource("/images/login.jpg")));
JLabel lblNewLabel_1 = new JLabel("账号");
JLabel lblNewLabel_2 = new JLabel("密码");
textField = new JTextField();
textField.setColumns(0);
rdbtnNewRadioButton = new JRadioButton("学生");
rdbtnNewRadioButton.setSelected(true);
buttonGroup.add(rdbtnNewRadioButton);
rdbtnNewRadioButton_1 = new JRadioButton("教师");
buttonGroup.add(rdbtnNewRadioButton_1);
rdbtnNewRadioButton_2 = new JRadioButton("教务人员");
buttonGroup.add(rdbtnNewRadioButton_2);
JButton btnNewButton = new JButton("登录");
btnNewButton.setDoubleBuffered(true);
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
btnNewButtonactionPerformed(event);
}
});
JButton btnNewButton_1 = new JButton("取消");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
passwordField = new JPasswordField();
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
.createSequentialGroup().addGap(70)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(lblNewLabel_2, GroupLayout.PREFERRED_SIZE, 36, GroupLayout.PREFERRED_SIZE)
.addGap(8).addComponent(passwordField, 166, 166, 166))
.addGroup(groupLayout.createSequentialGroup().addComponent(rdbtnNewRadioButton).addGap(18)
.addComponent(rdbtnNewRadioButton_1).addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(rdbtnNewRadioButton_2))
.addGroup(groupLayout.createSequentialGroup().addComponent(lblNewLabel_1).addGap(18)
.addComponent(textField, GroupLayout.PREFERRED_SIZE, 166, GroupLayout.PREFERRED_SIZE)))
.addContainerGap(18, Short.MAX_VALUE))
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 341, Short.MAX_VALUE)
.addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup().addContainerGap(82, Short.MAX_VALUE)
.addComponent(btnNewButton).addGap(27).addComponent(btnNewButton_1).addGap(118)));
groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
.createSequentialGroup()
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 170, GroupLayout.PREFERRED_SIZE).addGap(18)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING).addComponent(lblNewLabel_1).addComponent(
textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(groupLayout
.createParallelGroup(Alignment.BASELINE).addComponent(lblNewLabel_2).addComponent(passwordField,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(rdbtnNewRadioButton_2)
.addComponent(rdbtnNewRadioButton_1).addComponent(rdbtnNewRadioButton))
.addGap(18).addGroup(groupLayout.createParallelGroup(Alignment.BASELINE).addComponent(btnNewButton_1)
.addComponent(btnNewButton))
.addContainerGap(40, Short.MAX_VALUE)));
getContentPane().setLayout(groupLayout);
addTrayIcon();
}
// 给心痛托盘区添加图标
private void addTrayIcon() {
// Auto-generated method stub
SystemTray st = SystemTray.getSystemTray();
if (SystemTray.isSupported()) {
URL imgurl = this.getClass().getClassLoader().getResource("images/login_main.jpg");
Image img = Toolkit.getDefaultToolkit().createImage(imgurl);
// Image
// img=Toolkit.getDefaultToolkit().createImage("images/aboutme.jpg");
PopupMenu popup = new PopupMenu();
MenuItem item = new MenuItem("退出程序");
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Auto-generated method stub
System.exit(0);
}
});
popup.add(item);
TrayIcon icon = new TrayIcon(img, "教务管理系统", popup);
icon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
UserInfo u = GlobalUser.LOGIN_USER;
if (u == null) {
Login.start();
} else if (u.getGrade() == 0) {
AdminFrame.start();
} else if (u.getGrade() == 1) {
TeacherFrame.start();
} else if (u.getGrade() == 2) {
StudentFrame.start();
}
}
}
});
icon.setImageAutoSize(true);
try {
st.add(icon);
} catch (AWTException e1) {
e1.printStackTrace();
}
}
}
protected void mntmNewMenuItem_1actionPerformed(ActionEvent e) {
About.start();
}
protected void btnNewButtonactionPerformed(ActionEvent event) {
String name = textField.getText();// 获得用户名
String pass = String.valueOf(passwordField.getPassword());
UserInfo user = null;
// 未输入用户名
if (name.equals("")) {
JOptionPane.showMessageDialog(this, "用户名不允许为空!", "提示", 2);
return;
}
try {
user = DAOFactory.getIUserDAOInstance().findById(name);
// System.out.println(user);
if (user != null) {
if (user.getUserPass() != null && user.getUserPass().equals(pass)) {
GlobalUser.LOGIN_USER = user; // 记录当前用户
// 进入主界面
if (rdbtnNewRadioButton.isSelected()) {
if (user.getGrade() != 2) {
JOptionPane.showMessageDialog(this, "该用户不是学生!", "消息", 2);
return;
}
// 学生界面
StudentFrame.start();
} else if (rdbtnNewRadioButton_1.isSelected()) {
if (user.getGrade() != 1) {
JOptionPane.showMessageDialog(this, "该用户不是老师!", "消息", 2);
return;
}
// 教师界面
TeacherFrame.start();
} else if (rdbtnNewRadioButton_2.isSelected()) {
if (user.getGrade() != 0) {
JOptionPane.showMessageDialog(this, "该用户不是教务人员!", "消息", 2);
return;
}
// 教务人员界面
AdminFrame.start();
} else {
JOptionPane.showMessageDialog(this, "别急!权限没选呢");
return;
}
this.dispose();
} else {
JOptionPane.showMessageDialog(this, "用户名或密码错误!", "消息", 2);
return;
}
}
} catch (Exception e) {
e.printStackTrace();
}
if (user == null) {
JOptionPane.showMessageDialog(this, "用户名或密码错误!", "消息", 0);
return;
}
}
private class SwingAction extends AbstractAction {
public SwingAction() {
putValue(NAME, "SwingAction");
putValue(SHORT_DESCRIPTION, "Some short description");
}
public void actionPerformed(ActionEvent e) {
}
}
public static void start() {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Login().setVisible(true);
}
});
}
public static void main(String[] args) {
new Login().setVisible(true);
}
}
AdminFrame.java
package com.sjsq.window;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.IOException;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.SwingConstants;
import com.sjsq.util.DateUtil;
import com.sjsq.util.GlobalUser;
import com.sjsq.util.imageUtils;
import com.sjsq.util.msgUtils;
import java.awt.Color;
import java.awt.Font;
public class AdminFrame extends JFrame {
private JLabel lblNewLabel_3;
private JLabel lblNewLabel_1;
private JLabel lblNewLabel_2;
private JLabel lblNewLabel;
/**
*
*/
private static final long serialVersionUID = 1L;
public AdminFrame() {
setResizable(false);
setTitle("教务管理系统---教务人员");
setSize(new Dimension(800, 500));
setLocationRelativeTo(null);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("工具");
menuBar.add(mnNewMenu);
JMenu menu_1 = new JMenu("系统工具");
mnNewMenu.add(menu_1);
JMenuItem mntmNewMenuItem_24 = new JMenuItem("cmd");
mntmNewMenuItem_24.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_24actionPerformed(event);
}
});
menu_1.add(mntmNewMenuItem_24);
JMenuItem mntmNewMenuItem_25 = new JMenuItem("截图");
mntmNewMenuItem_25.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_25actionPerformed(event);
}
});
menu_1.add(mntmNewMenuItem_25);
JMenuItem mntmNewMenuItem_26 = new JMenuItem("画图");
mntmNewMenuItem_26.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_26actionPerformed(event);
}
});
menu_1.add(mntmNewMenuItem_26);
JMenuItem mntmNewMenuItem_27 = new JMenuItem("键盘");
mntmNewMenuItem_27.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_27actionPerformed(event);
}
});
menu_1.add(mntmNewMenuItem_27);
JMenuItem mntmNewMenuItem_28 = new JMenuItem("记事本");
mntmNewMenuItem_28.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_28actionPerformed(event);
}
});
menu_1.add(mntmNewMenuItem_28);
JMenuItem mntmNewMenuItem_29 = new JMenuItem("计算器");
mntmNewMenuItem_29.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_29actionPerformed(event);
}
});
menu_1.add(mntmNewMenuItem_29);
JMenuItem mntmNewMenuItem_2 = new JMenuItem("系统信息");
mntmNewMenuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_2actionPerformed(e);
}
});
mnNewMenu.add(mntmNewMenuItem_2);
JMenuItem mntmNewMenuItem_3 = new JMenuItem("系统版本");
mntmNewMenuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_3actionPerformed(e);
}
});
mnNewMenu.add(mntmNewMenuItem_3);
JMenuItem mntmNewMenuItem_4 = new JMenuItem("退出");
mntmNewMenuItem_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mntmNewMenuItem_4actionPerformed(event);
}
});
mnNewMenu.add(mntmNewMenuItem_4);
JMenu mnNewMenu_1 = new JMenu("通知");
menuBar.add(mnNewMenu_1);
JMenuItem menuItem_1 = new JMenuItem("管理通知");
menuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
menuItem_1actionPerformed(e);
}
});
mnNewMenu_1.add(menuItem_1);
JMenu mnNewMenu_2 = new JMenu("成绩管理");
menuBar.add(mnNewMenu_2);
JMenuItem mntmNewMenuItem_6 = new JMenuItem("成绩管理");
mntmNewMenuItem_6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_6actionPerformed(e);
}
});
mnNewMenu_2.add(mntmNewMenuItem_6);
JMenu mnNewMenu_3 = new JMenu("用户管理");
menuBar.add(mnNewMenu_3);
JMenuItem menuItem_2 = new JMenuItem("退出");
menuItem_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
menuItem_2addActionListener(e);
}
});
JMenuItem menuItem_3 = new JMenuItem("学生管理");
menuItem_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
menuItem_3actionPerformed(e);
}
});
mnNewMenu_3.add(menuItem_3);
JMenuItem mntmNewMenuItem_8 = new JMenuItem("教师管理");
mntmNewMenuItem_8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_8actionPerformed(e);
}
});
mnNewMenu_3.add(mntmNewMenuItem_8);
JMenuItem mntmNewMenuItem_7 = new JMenuItem("教务人员");
mntmNewMenuItem_7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_7actionPerformed(e);
}
});
mnNewMenu_3.add(mntmNewMenuItem_7);
mnNewMenu_3.add(menuItem_2);
JMenu mnNewMenu_4 = new JMenu("课程管理");
menuBar.add(mnNewMenu_4);
JMenuItem mntmNewMenuItem_11 = new JMenuItem("安排课程");
mntmNewMenuItem_11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_11actionPerformed(e);
}
});
mnNewMenu_4.add(mntmNewMenuItem_11);
JMenuItem mntmNewMenuItem_12 = new JMenuItem("课程管理");
mntmNewMenuItem_12.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_12actionPerformed(e);
}
});
mnNewMenu_4.add(mntmNewMenuItem_12);
JMenu menu_2 = new JMenu("班级管理");
menuBar.add(menu_2);
JMenuItem mntmNewMenuItem_9 = new JMenuItem("班级管理");
mntmNewMenuItem_9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_9actionPerformed(e);
}
});
menu_2.add(mntmNewMenuItem_9);
JMenu menu = new JMenu("帮助");
menuBar.add(menu);
JMenuItem mntmNewMenuItem = new JMenuItem("关于");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
About.start();
}
});
menu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("帮助");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mntmNewMenuItem_1actionPerformed(e);
}
});
menu.add(mntmNewMenuItem_1);
lblNewLabel = new JLabel("");
// 设置变换图片
imageUtils changeimg = new imageUtils(lblNewLabel);
changeimg.start();
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_1 = new JLabel("");
lblNewLabel_1.setHorizontalAlignment(SwingConstants.LEFT);
// 设置当前用户
lblNewLabel_1.setText(GlobalUser.LOGIN_USER.getNickName() + "(" + GlobalUser.LOGIN_USER.getUserName() + ")");
lblNewLabel_2 = new JLabel("");
lblNewLabel_2.setHorizontalAlignment(SwingConstants.LEFT);
lblNewLabel_3 = new JLabel("");
lblNewLabel_3.setFont(new Font("宋体", Font.PLAIN, 14));
lblNewLabel_3.setForeground(Color.RED);
// 设置提示信息
msgUtils msg = new msgUtils(lblNewLabel_3);
msg.start();
// 设置时间
new Thread() {
public void run() {
while (true) {
lblNewLabel_2.setText(DateUtil.getDateTime());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
}.start();
lblNewLabel_3.setHorizontalAlignment(SwingConstants.CENTER);
JLabel label = new JLabel("当前用户:");
GroupLayout groupLayout = new GroupLayout(getContentPane());
groupLayout.setHorizontalGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addContainerGap()
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup().addGap(10).addComponent(lblNewLabel_3,
GroupLayout.DEFAULT_SIZE, 764, Short.MAX_VALUE))
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 766, GroupLayout.PREFERRED_SIZE)
.addGroup(groupLayout.createSequentialGroup().addGap(176).addComponent(label)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 213,
GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblNewLabel_2, GroupLayout.DEFAULT_SIZE, 325, Short.MAX_VALUE)))
.addContainerGap()));
groupLayout.setVerticalGroup(groupLayout.createParallelGroup(Alignment.LEADING).addGroup(groupLayout
.createSequentialGroup().addContainerGap()
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel_2, GroupLayout.PREFERRED_SIZE, 34, GroupLayout.PREFERRED_SIZE)
.addComponent(label)
.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 33, GroupLayout.PREFERRED_SIZE))
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(lblNewLabel, GroupLayout.PREFERRED_SIZE, 345, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(lblNewLabel_3, GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE)));
getContentPane().setLayout(groupLayout);
}
protected void menuItem_1actionPerformed(ActionEvent e) {
// TODO 通知管理
}
protected void mntmNewMenuItem_7actionPerformed(ActionEvent e) {
// 教务人员
ManagerAdmin.start();
}
protected void mntmNewMenuItem_8actionPerformed(ActionEvent e) {
// 教师管理
ManagerTeach.start();
}
protected void menuItem_3actionPerformed(ActionEvent e) {
// 学生管理
ManagerStu.start();
}
protected void mntmNewMenuItem_12actionPerformed(ActionEvent e) {
// 课程管理
ManagerCourse.start();
}
protected void mntmNewMenuItem_11actionPerformed(ActionEvent e) {
// 排课
ArrangeCourse.start();
}
protected void mntmNewMenuItem_1actionPerformed(ActionEvent e) {
// TODO 帮助
}
protected void mntmNewMenuItem_9actionPerformed(ActionEvent e) {
// 班级管理
ManagerClass.start();
}
protected void mntmNewMenuItem_6actionPerformed(ActionEvent e) {
// 成绩管理
ManagerScore.start();
}
protected void mntmNewMenuItem_29actionPerformed(ActionEvent event) {
// 打开计算器
try {
Runtime.getRuntime().exec("cmd /c start CALC");
} catch (IOException e) {
e.printStackTrace();
}
}
protected void mntmNewMenuItem_28actionPerformed(ActionEvent event) {
// 打开记事本
try {
Runtime.getRuntime().exec("cmd /c start notepad");
} catch (IOException e) {
e.printStackTrace();
}
}
protected void mntmNewMenuItem_27actionPerformed(ActionEvent event) {
// 打开屏幕键盘
try {
Runtime.getRuntime().exec("cmd /c start osk");
} catch (IOException e) {
e.printStackTrace();
}
}
protected void mntmNewMenuItem_26actionPerformed(ActionEvent event) {
// 打开画图板
try {
Runtime.getRuntime().exec("cmd /c start mspaint");
} catch (IOException exc) {
exc.printStackTrace();
}
}
protected void mntmNewMenuItem_25actionPerformed(ActionEvent event) {
// 打开截图
try {
Runtime.getRuntime().exec("cmd /c start snippingtool");
} catch (IOException exc) {
exc.printStackTrace();
}
}
protected void mntmNewMenuItem_24actionPerformed(ActionEvent event) {
// 打开cmd
try {
Runtime.getRuntime().exec("cmd /c start cmd");
} catch (IOException exc) {
exc.printStackTrace();
}
}
protected void mntmNewMenuItem_2actionPerformed(ActionEvent e) {
// 系统信息
OsINF.start();
}
protected void mntmNewMenuItem_3actionPerformed(ActionEvent e) {
// 检测系统版本
try {
Runtime.getRuntime().exec("cmd /c start winver");
} catch (IOException ex) {
ex.printStackTrace();
}
}
protected void menuItem_2addActionListener(ActionEvent e) {
this.dispose();
Login.start();
}
protected void mntmNewMenuItem_4actionPerformed(ActionEvent event) {
System.exit(1);
}
public static void start() {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new AdminFrame().setVisible(true);
}
});
}
}
四、其他
四、其他
1.其他系统实现
JavaWeb系统系列实现
Java+JSP实现学生图书管理系统
Java+JSP实现学生信息管理系统
Java+JSP实现用户信息管理系统
Java+Servlet+JSP实现学生成绩管理系统
Java+Servlet+JSP实现宠物诊所管理系统
Java+SSM+Easyui实现网上考试系统
Java+Springboot+H-ui实现营销管理系统
Java+Springboot+Mybatis+Bootstrap实现网上商城系统
JavaSwing系统系列实现
Java+Swing实现斗地主游戏
Java+Swing实现图书管理系统
Java+Swing实现医院管理系统
Java+Swing实现仓库管理系统
Java+Swing实现考试管理系统
Java+Swing实现通讯录管理系统
Java+Swing实现停车场管理系统
Java+Swing实现学生信息管理系统
Java+Swing实现学生宿舍管理系统
Java+Swing实现学生选课管理系统
Java+Swing实现学生成绩管理系统
Java+Swing实现学校教材管理系统
Java+Swing实现学校教务管理系统
Java+Swing实现企业人事管理系统
Java+Swing实现电子相册管理系统
Java+Swing实现自助取款机(ATM)系统
Java+Swing实现超市管理系统-TXT存储信息
Java+Swing实现宠物商店管理系统-TXT存储信息
2.获取源码
点击以下链接获取源码
Java+Swing+Mysql实现学校教务管理系统源码
3.备注
如有侵权请联系我删除。
4.鸡汤
功成不必在我,功成必定有我!