600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 学生学籍信息管理系统(Java + SQL)

学生学籍信息管理系统(Java + SQL)

时间:2023-09-06 04:00:53

相关推荐

学生学籍信息管理系统(Java + SQL)

学生学籍信息管理系统(Java + SQL)

开发环境:eclipse,SQLserve

开发语言:Java、SQL

第一步,数据库设计,我们设计之前先进行需求分析,我们要满足哪些基本需求呢,我们应该有两大功能模块,(1)管理员,教师和学生登录系统的模块。(2)管理员,教师和学生管理相应信息的模块。其次,我们要满足相应权限的人才能访问相应的数据和修改相应的数据。

第二步,就是开始数据库设计了,首先创建名为“学生学籍信息管理系统”的数据库,然后在数据库上建表和视图,以及录入数据,当然,这些你可以通过图形界面的方式录入,我直接上SQL语句,搞定一切,SQL语句如下。

数据库设计过程如下:

创建名为“学生学籍信息管理系统”的数据库

创建管理员表

创建教师表

创建班级表

创建学生表

创建课程表

创建成绩表

创建视图

gocreate table 管理员(管理员号 char(10) ,登录密码 char(20)) ; insert into 管理员values('1234','123');create table 教师表(教师号 char(20) primary key ,教师姓名 char(20),教师性别 char(10),职称 char(10),所属学院 char(20),登录密码 char(20)) ;insert into 教师表values ('0001','孙菁','女','副教授','计算机软件学院','123'),('0002','郑关胜','男','副教授','计算机软件学院','123'),('0003','方忠进','男','副教授','计算机软件学院','123'),('0004','左相','男','副教授','数学与统计学院','123'),('0005','何彬彬','男','讲师','应用技术学院','123');create table 班级表(班级号 char (20)primary key ,班级名称 char(20),所属学院 char(20),班级人数 char(10),班主任 char(20)) ;insert into 班级表 values ('01','软工1班','应用技术学院','35','胡歌') ,('02','软工2班','应用技术学院','35','孙菁'),('03','自动化2班','应用技术学院','35','刘涛'),('04','电气2班','自动化学院','35','朱伟');create table 学生表(学号 char(20) primary key,姓名 char(20),性别 char(10),年龄 smallint, 班级号 char(20),登录密码 char(20),foreign key (班级号) references 班级表 (班级号)) ;insert into 学生表 values ('33070046','王国栋','男',23,'02','123') ,('33070048','王祥安','男',22,'02','123') ,('33070044','孙汉成','男',22,'02','123') ,('33070054','姚壮','男',22,'02','123') ,('33070146','唐乃乔','男',23,'03','123') ,('33070246','陈向军','男',22,'04','123') ;create table 课程表(课程号 char(20) primary key,课程名 char(20),教师号 char(20),foreign key(教师号) references 教师表 (教师号)) ;insert into 课程表values ('01','数据库系统','0001'),('02','编译原理','0002'),('03','安卓','0003'),('04','离散数学','0004'),('05','就业指导','0005');create table 成绩表(学号 char(20),课程号 char(20),成绩 smallint ,foreign key (学号) references 学生表(学号),foreign key (课程号) references 课程表(课程号)) ;insert into 成绩表values ('33070044','01',88),('33070146','01',80),('33070246','01',77),('33070046','01',92),('33070048','01',90),('33070046','02',92),('33070044','02',88),('33070146','02',98),('33070246','02',68),('33070048','02',78),('33070046','03',93),('33070046','04',94),('33070048','03',94),('33070048','04',90),('33070044','03',88),('33070146','03',89),('33070246','03',83);gogocreate view 班级视图asselect 学生表.学号,班级表.班级号,班级表.班级名称,班级表.所属学院,班级表.班级人数,班级表.班主任from 学生表,班级表where 学生表.班级号=班级表.班级号;gogocreate view 成绩视图asselect 成绩表.学号,学生表.姓名,成绩表.课程号,课程表.课程名,教师表.教师姓名,成绩表.成绩from 成绩表,学生表,课程表,教师表where 成绩表.学号=学生表.学号 and 成绩表.课程号=课程表.课程号 and 课程表.教师号=教师表.教师号 gogocreate view 课程表1视图as select 成绩表.课程号,课程表.课程名,课程表.教师号,教师表.教师姓名 from 成绩表,课程表,教师表where 成绩表.课程号=课程表.课程号 and 课程表.教师号=教师表.教师号gogocreate view 课程表2视图as select 成绩表.课程号,课程表.课程名,课程表.教师号,教师表.教师姓名 from 成绩表,课程表,教师表where 成绩表.课程号=课程表.课程号 and 课程表.教师号=教师表.教师号gogocreate view 课程表3视图as select 成绩表.课程号,课程表.课程名,课程表.教师号,教师表.教师姓名 from 成绩表,课程表,教师表where 成绩表.课程号=课程表.课程号 and 课程表.教师号=教师表.教师号gogocreate view 课程表4视图as select 成绩表.课程号,课程表.课程名,课程表.教师号,教师表.教师姓名 from 成绩表,课程表,教师表where 成绩表.课程号=课程表.课程号 and 课程表.教师号=教师表.教师号gogocreate view 课程表5视图as select 成绩表.课程号,课程表.课程名,课程表.教师号,教师表.教师姓名 from 成绩表,课程表,教师表where 成绩表.课程号=课程表.课程号 and 课程表.教师号=教师表.教师号gogocreate view 学生信息表asselect 学生表.学号,学生表.姓名,学生表.性别,学生表.年龄,学生表.班级号,班级表.班级名称,成绩表.课程号,课程表.课程名,成绩表.成绩,课程表.教师号from 学生表,班级表,成绩表,课程表where 学生表.班级号=班级表.班级号 and 学生表.学号=成绩表.学号 and 课程表.课程号=成绩表.课程号go

数据库设计就这样结束了,是不是很简单呢,接下来我们在eclipse中写界面和控制程序,然后连接到数据库,就可以实现学籍信息的管理了。

当然,数据库设计虽然结束了,但是访问数据库,需要用户名和密码,我们默认的用户名为“sa”,在数据库中将其密码改成“123”,和程序中保持一致。修改方法很简单,参考这个猛戳一下

第三步,我们在连接数据库的时候需要一个驱动,如图所示,就是这个驱动,我的版本需要4.0的才可以。直接网上搜一下,下载就可以,然后在eclipse中加载就可以了,至于如何加载驱动,很简单,参考我的这篇博客中的方法就可以了,猛戳一下

接下来就是干活了,敲代码,首先是用户登录模块,先上效果图。默认选择的角色只能是管理员,老师和学生,输入用户ID和密登录,错误会有错误提示。

登录界面

密码登录成功提示界面

管理员管理界面

教师信息管理界面

学生信息管理及查询结果界面

课程信息管理界面

成绩信息管理界面

班级信息管理界面

数据库老师的学生信息管理界面

数据库老师的学生课程信息管理界面

在这里插入图片描述

数据库老师的学生成绩信息管理界面

数据库老师的可以查看的班级信息界面

时间有限,博主也是新手,还在修改Bug中,仅展示部分效果,下面开始贴源代码,由于源代码,比较多,这里面贴几个主要的供参考,需要全部源码的,去我的博客下载就可以了,链接呈上猛戳这里

登录模块的源代码

package 学生学籍信息管理系统新;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;//import java.util.EventListener;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;//登录页面/** Author WangGuodong*/public class DengLu extends JFrame implements ActionListener,ItemListener{JPanel p1,p2,p3;Font f1,f2,f3,f4;/*Font f1=new Font("宋体",Font.BOLD,26); //如果变量已经声明,则再定义必须放在方法里面(*此处出错)Font f2=new Font("幼圆",Font.ITALIC,20);Font f3=new Font("黑体",Font.BOLD,30);Font f4=new Font("隶书",Font.PLAIN,40);*/JLabel head1=new JLabel("用户登录 / ");JLabel head2=new JLabel("LOGIN ");/*head1.setFont(f1);head1.setForeground(Color.BLUE);head2.setFont(f2);head2.setForeground(Color.GRAY);*///定义标签和文本框以及下拉列表//用户名标签和输入文本框JLabel usename=new JLabel("用户ID:");JTextField usenametext=new JTextField(10);//密码标签和密码文本框,JPasswordField对象会自动对密码进行隐藏处理JLabel password=new JLabel("密 码:");JPasswordField txtPwd=new JPasswordField(10);//添加验证码JLabel test=new JLabel("验证码:");//此处后期需要重写//角色标签和下拉列表,此处使用swing中的JComboBox类,也可使用awt中的Choice类JLabel role=new JLabel("角色:");JComboBox boxrole=new JComboBox();//创建三个选择按钮JButton a=new JButton("登录");JButton b=new JButton("重置");JButton c=new JButton("取消");//创建Connection和Statement对象//连接数据库和调用数据库Connection conn;Statement stmt;ResultSet rs;//定义连接字符String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=学生学籍信息管理系统";String userName = "sa";String userPwd = "123";//定义变量来接收下拉列表的索引值,也可返回具体值int index=0;String index1;static int ok=1;static int cancel=0;int actionCode=0;public DengLu(){//构造方法super("南京信息工程大学学分制管理系统");setLayout(new FlowLayout());p1=new JPanel();p2=new JPanel();p3=new JPanel();f1=new Font("宋体",Font.BOLD,30);f2=new Font("幼圆",Font.ITALIC,30);f3=new Font("楷书",Font.BOLD,18);f4=new Font("隶书",Font.PLAIN,40);//设置面板1的标签head1.setFont(f1);head1.setForeground(Color.BLUE);head2.setFont(f2);head2.setForeground(Color.GRAY);//p1.setBackground(new Color(255,240,240));p1.setBackground(null);p1.setOpaque(false);p1.add(head1);p1.add(head2);//面板2为4行2列的网格布局管理器p2.setLayout(new GridLayout(4,2));/*usename.setFont(f3);password.setFont(f3);role.setFont(f3);*///下拉列表中添加数据boxrole.addItem("管理员");boxrole.addItem("教师");boxrole.addItem("学生");//p2.setBackground(new Color(240,255,240));p2.setBackground(null);p2.setOpaque(false);boxrole.setOpaque(false);usenametext.setOpaque(false);txtPwd.setOpaque(false);p2.add(role);p2.add(boxrole);p2.add(usename);p2.add(usenametext);p2.add(password);p2.add(txtPwd);//将3个按钮添加进面板3中//p3.setBackground(new Color(230,230,250));p3.setBackground(null);p3.setOpaque(false);//设置透明a.setContentAreaFilled(false);b.setContentAreaFilled(false);c.setContentAreaFilled(false);//setGround(a);p3.add(a);p3.add(b);p3.add(c);//将三个面板添加进框架容器中this.add(p1);this.add(p2);this.add(p3);//this.add(new MyPanel());//设置背景图片 ImageIcon ic=new ImageIcon("D:\\picture\\登录界面.png");JLabel l=new JLabel(ic);l.setBounds(0,0,ic.getIconWidth(),ic.getIconHeight());//l.setBounds(0,0,this.getWidth(),this.getHeight());//JPanel ip=(JPanel)this.getContentPane();this.getLayeredPane().add(l,new Integer(Integer.MIN_VALUE));((JPanel)this.getContentPane()).setOpaque(false);//设置透明//设置顶层容器的大小、位置、可见性及close功能setDefaultCloseOperation(EXIT_ON_CLOSE);setSize(350,300);setLocationRelativeTo(null);setVisible(true);//注册事件监听器//这里的this就是本类,已经是ActionListener的实现类 --有待探究boxrole.addItemListener(this); a.addActionListener(this);b.addActionListener(this);c.addActionListener(this);}public void connDB() {//连接数据库方法//对于jdbc4版本,加载驱动可以选择性省略/*try {//加载驱动Class.forName("com.microsoft.sqlsever.jdbc.SQLSeverDriver");//System.out.println("加载成功");}catch(ClassNotFoundException e) {e.printStackTrace();}*/try {//连接数据库//两条语句选择性使用,Debug时此处出问题!//conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=教务系统","sa","123");conn=DriverManager.getConnection(dbURL,userName,userPwd);stmt=conn.createStatement();}catch(Exception e) {e.printStackTrace();//System.out.println("连接失败!");}}public void closeDB() {//关闭数据库方法try {rs.close();stmt.close();conn.close();}catch(Exception e) {e.printStackTrace();//System.out.println("关闭失败!");}}//实现ItemListener的抽象方法//对下拉列表进行事件处理public void itemStateChanged(ItemEvent e) {//该高级事件用于监听用户的选定与否if(e.getStateChange()==ItemEvent.SELECTED) {//判断下拉列表是否选定JComboBox j=(JComboBox)e.getSource(); //强制类型转换+获取事件源index=j.getSelectedIndex();//index1=j.getSelectedItem();}}//该方法用来确认是否在数据库中找到学号public boolean searchsno(String str) {boolean x=false;this.connDB();try {rs=stmt.executeQuery("select * from 学生表");while(rs.next()) {if(rs.getString("学号").trim().equals(str)) {x=true;}}//return x;}catch(Exception e) {e.printStackTrace();}return x;}//该方法用来确认是否在数据库中找到教师号public boolean searchtno(String str) {boolean x=false;this.connDB();try {rs=stmt.executeQuery("select * from 教师表");while(rs.next()) {if(rs.getString("教师号").trim().equals(str)) {//在java中,判断字符串是否相同,一定要使用equals函数!!!!!!!!x=true;}}//return x;}catch(Exception e) {e.printStackTrace();}return x;}//该方法用来确认是否能在数据库中找到管理员IDpublic boolean searchmanagerno(String str) {boolean x=false;this.connDB();try {rs=stmt.executeQuery("select * from 管理员");while(rs.next()) {if(rs.getString("管理员号").trim().equals(str)) {//在java中,判断字符串是否相同,一定要使用equals函数!!!!!!!!x=true;}}//return x;}catch(Exception e) {e.printStackTrace();}return x;}//实现ActionListener的抽象方法//对三个按钮进行事件处理public void actionPerformed(ActionEvent e){Object source=e.getSource();String un;String pw;boolean success= false; //用于判断是否登录成功if(source==a) {//如果事件源是“确定”按钮if(usenametext.getText().equals("") || txtPwd.getText().equals("")) {//判断用户名和密码是否为空//JOptionPane类用作提示框,常见方法:1.showMessageDialog; 2.showOptionDialogJOptionPane.showMessageDialog(null,"登录名和密码不能为空!");}else {//用户名和密码均不为空,进行连接数据库this.connDB();//这里先连接数据库,再执行数据库操作步骤,等效为将一个try{}catch{}分解成几个,效果一样!try {if(index==0) {//管理员登录//trim()方法:从当前 String 对象移除所有前导空白字符和尾部空白字符if(!searchmanagerno(usenametext.getText().trim())) {JOptionPane.showMessageDialog(null,"对不起,此用户不存在!请重新登录!");usenametext.setText("");txtPwd.setText("");}else {rs=stmt.executeQuery("select * from 管理员 where 管理员号="+ usenametext.getText().trim());while(rs.next()) {pw=rs.getString(2).trim();if(txtPwd.getText().equals(pw)) {JOptionPane.showMessageDialog(null,"管理员登录成功!");this.setVisible(false);new GLFrame(); //进入管理员界面}else {JOptionPane.showMessageDialog(null,"密码错误!请重试");txtPwd.setText("");}}}}if(index==1) {//教师登录if(!searchtno(usenametext.getText().trim())) {JOptionPane.showMessageDialog(null,"对不起,此用户不存在!请重新登录!");usenametext.setText("");txtPwd.setText("");}else {rs=stmt.executeQuery("select * from 教师表 where 教师号="+ usenametext.getText().trim());while(rs.next()) {pw=rs.getString("登录密码").trim();if(txtPwd.getText().equals(pw)) {JOptionPane.showMessageDialog(null,"教师登录成功!");this.setVisible(false);new Teacher(usenametext.getText()); //进入教师界面}else {JOptionPane.showMessageDialog(null,"密码错误!请重试");txtPwd.setText("");}}}}if(index==2) {//学生登录if(!searchsno(usenametext.getText().trim())) {JOptionPane.showMessageDialog(null,"对不起,此用户不存在!请重新登录!");usenametext.setText("");txtPwd.setText("");}else {rs=stmt.executeQuery("select * from 学生表 where 学号="+ usenametext.getText().trim());while(rs.next()) {pw=rs.getString("登录密码").trim();if(txtPwd.getText().equals(pw)) {JOptionPane.showMessageDialog(null,"学生登录成功!");this.setVisible(false);new Student(usenametext.getText()); //进入学生界面}else {JOptionPane.showMessageDialog(null,"密码错误!请重试");txtPwd.setText("");}}}}}catch(Exception e1) {e1.printStackTrace();//System.out.println("连接失败!");}closeDB();}}if(source==b) {//如果事件源是“重置”按钮usenametext.setText(""); txtPwd.setText("");}if(source==c) {//如果事件源是“取消”按钮//System.exit(0);this.dispose();new DengLu();}}public static void main(String[] args){new DengLu();}}

教师模块的源代码

package 学生学籍信息管理系统新;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;/** Author WangGuodong*/public class Teacher extends JFrame implements ActionListener{JLabel l=new JLabel("--教师页面--");//定义面板容器JPanel p1=new JPanel();JPanel p2=new JPanel();//设置字体类型Font f1=new Font("宋体",Font.BOLD,30);Font f2=new Font("幼圆",Font.ITALIC,30);Font f3=new Font("楷体",Font.BOLD,17);Font f4=new Font("隶书",Font.PLAIN,40);//设置6个按钮,以便管理员操作JButton btnTmg=new JButton("个人信息管理");JButton btnSsh=new JButton("学生信息查询");JButton btnCsh=new JButton("课程信息查询");JButton btnSCmg=new JButton("成绩信息管理");JButton btnCSsh=new JButton("班级信息查询");JButton btnEXIT=new JButton("退出");String tno;String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=学生学籍信息管理系统";String useName="sa";String usePwd="123";Connection conn;Statement stmt;ResultSet rs;Object[][] arr;String tpwd;JScrollPane scroll1,scroll2,scroll3,scroll4,scroll5,scroll6;JTable tb1,tb2,tb3,tb4,tb5,tb6; int row;public Teacher(String str) {//构造方法super("教师页面");setLayout(new FlowLayout());//设置标签的颜色l.setFont(f1);l.setForeground(Color.blue);//设置按钮字体和颜色btnTmg.setFont(f3);btnTmg.setContentAreaFilled(false);//btnTM.setBackground(Color.blue);btnSsh.setFont(f3);btnSsh.setContentAreaFilled(false);btnCsh.setFont(f3);btnCsh.setContentAreaFilled(false);btnSCmg.setFont(f3);btnSCmg.setContentAreaFilled(false);btnCSsh.setFont(f3);btnCSsh.setContentAreaFilled(false);btnEXIT.setFont(f3);btnEXIT.setContentAreaFilled(false);this.tno=str;p1.add(l);p1.setOpaque(false);p2.setOpaque(false);p2.setLayout(new GridLayout(3,2,10,10));p2.add(btnTmg);p2.add(btnSsh);p2.add(btnCsh);p2.add(btnSCmg);p2.add(btnCSsh);p2.add(btnEXIT);//布局管理器this.add(p1);this.add(p2);ImageIcon ic=new ImageIcon("C:\\Users\\YXS\\eclipse-workspace\\edu-a-s\\src\\edu\\yxs\\sqldemo\\6.jpg");JLabel l=new JLabel(ic);l.setBounds(0,0,ic.getIconWidth(),ic.getIconHeight());//l.setBounds(0,0,this.getWidth(),this.getHeight());//JPanel ip=(JPanel)this.getContentPane();this.getLayeredPane().add(l,new Integer(Integer.MIN_VALUE));((JPanel)this.getContentPane()).setOpaque(false);//设置透明//设置顶层容器的大小、位置、可见性及close功能setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(350,300);setLocationRelativeTo(null);setVisible(true);this.connDB();btnTmg.addActionListener(this);btnSsh.addActionListener(this);btnCsh.addActionListener(this);btnSCmg.addActionListener(this);btnCSsh.addActionListener(this);btnEXIT.addActionListener(this);}public void connDB() {try {conn=DriverManager.getConnection(dbURL,useName,usePwd);stmt=conn.createStatement();}catch(Exception e) {e.printStackTrace();}}public void closeDB() {try {rs.close();stmt.close();conn.close();}catch(Exception e) {e.printStackTrace();}}public void tmg(String str) {//个人信息管理方法JFrame f=new JFrame("个人信息");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnchange=new Button("修改密码");Button btnrt=new Button("返回");btnchange.setFont(f3);btnchange.setBackground(new Color(131,175,155));btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();arr=new Object[1][7];try {rs=stmt.executeQuery("select * from 教师表 where 教师号="+str);while(rs.next()) {arr[0][0]=rs.getString("教师号");arr[0][1]=rs.getString("姓名");arr[0][2]=rs.getString("性别");arr[0][3]=rs.getString("学历");arr[0][4]=rs.getString("职称");arr[0][5]=rs.getString("所属学院");arr[0][6]=rs.getString("登录密码");}}catch(Exception e){e.printStackTrace();}String[] list= {"教师号","姓名","性别","学历","职称","所属学院","登录密码"};tb1=new JTable(arr,list); //创建表格scroll1=new JScrollPane(tb1);//f.add(btnrt,BorderLayout.NORTH);f.add(btnchange);f.add(btnrt);f.add(scroll1); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Teacher(tno);}});btnchange.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();change();}});}public void change() {//创建修改密码页面,新窗口用于修改密码this.connDB();JFrame f=new JFrame("修改密码");f.setLayout(new FlowLayout());JPanel p=new JPanel();JPanel p1=new JPanel();p.setLayout(new GridLayout(3,2));JLabel btn1=new JLabel("初始密码:");btn1.setFont(f3);JTextField tf1=new JTextField(10);JLabel btn2=new JLabel("修改密码:");btn2.setFont(f3);JTextField tf2=new JTextField(10);Button ok=new Button("确定");ok.setBackground(new Color(131,175,155));Button cancel=new Button("取消");cancel.setBackground(new Color(131,175,155));p.add(btn1);p.add(tf1);p.add(btn2);p.add(tf2);p1.add(ok);p1.add(cancel);f.add(p);f.add(p1);f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setLocation(530,300);//f.setLocationRelativeTo(null);f.setSize(300,150);f.setVisible(true);ok.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {try {//获取初始密码rs=stmt.executeQuery("select * from 教师表 where 教师号="+tno);while(rs.next()) {tpwd=rs.getString("登录密码").trim();}}catch(Exception e1) {e1.printStackTrace();}if(tf2.getText().equals("") || tf1.getText().equals("")) {JOptionPane.showMessageDialog(null, "密码不能为空!请重新修改!");}else{if(!tpwd.equals(tf1.getText().trim())) {//spwd.equals(tf1.getText().trim())JOptionPane.showMessageDialog(null,"初始密码错误,请重新输入密码!"); //"原密码是"+spwd+"输入密码是"+tf1.getText();tf1.setText("");tf2.setText("");}else {try {stmt.executeUpdate("update 教师表 set 登录密码 ="+tf2.getText().trim()+"where 教师号="+tno);}catch(Exception e1) {e1.printStackTrace();}JOptionPane.showMessageDialog(null,"密码修改成功!请重新登录!");f.dispose();new DengLu();}}}});cancel.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Teacher(tno);}});}public void ssh(String str) {//学生信息查询JFrame f=new JFrame("学生信息");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();int i=0,j=0;ArrayList al=new ArrayList();try {rs=stmt.executeQuery("select * from 学生信息表 where 教师号="+str);while(rs.next()) {al.add(rs.getString("学号"));al.add(rs.getString("姓名"));al.add(rs.getString("性别"));al.add(rs.getInt("年龄"));al.add(rs.getString("班级名称"));al.add(rs.getString("课程名"));i++;}}catch(Exception e){e.printStackTrace();}arr=new Object[i][6];try {rs=stmt.executeQuery("select * from 学生信息表 where 教师号="+str);while(rs.next()) {arr[j][0]=rs.getString("学号");arr[j][1]=rs.getString("姓名");arr[j][2]=rs.getString("性别");arr[j][3]=rs.getString("年龄");arr[j][4]=rs.getString("班级名称");arr[j][5]=rs.getString("课程名");j++;}}catch(Exception e){e.printStackTrace();}String[] list= {"学号","姓名","性别","年龄","班级名称","课程名"};tb2=new JTable(arr,list); //创建表格scroll2=new JScrollPane(tb2);//f.add(btnrt,BorderLayout.NORTH);f.add(btnrt);f.add(scroll2); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Teacher(tno);}});}public void csh(String str) {//课程信息查询JFrame f=new JFrame("课程信息");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();int i=0,j=0;ArrayList al=new ArrayList();try {rs=stmt.executeQuery("select distinct 班级号 ,班级名称,课程号,课程名 from 学生信息表 where 教师号="+str);while(rs.next()) {al.add(rs.getString("班级号"));al.add(rs.getString("班级名称"));al.add(rs.getString("课程号"));al.add(rs.getString("课程名"));i++;}}catch(Exception e){e.printStackTrace();}arr=new Object[i][4];try {rs=stmt.executeQuery("select distinct 班级号 ,班级名称,课程号,课程名 from 学生信息表 where 教师号="+str);while(rs.next()) {arr[j][0]=rs.getString("班级号");arr[j][1]=rs.getString("班级名称");arr[j][2]=rs.getString("课程号");arr[j][3]=rs.getString("课程名");j++;}}catch(Exception e){e.printStackTrace();}String[] list= {"班级号","班级名称","课程号","课程名"};tb3=new JTable(arr,list); //创建表格scroll3=new JScrollPane(tb3);//f.add(btnrt,BorderLayout.NORTH);f.add(btnrt);f.add(scroll3); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Teacher(tno);}});}public void scmg(String str) {//成绩信息管理JFrame f=new JFrame("学生成绩信息");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");Button btnchange=new Button("修改成绩");btnchange.setFont(f3);btnchange.setBackground(new Color(131,175,155));btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();int i=0,j=0;ArrayList al=new ArrayList();try {rs=stmt.executeQuery("select * from 学生信息表 where 教师号="+str);while(rs.next()) {al.add(rs.getString("学号"));al.add(rs.getString("姓名"));al.add(rs.getString("性别"));al.add(rs.getInt("年龄"));al.add(rs.getString("班级名称"));al.add(rs.getString("课程名"));al.add(rs.getString("成绩"));i++;}}catch(Exception e){e.printStackTrace();}arr=new Object[i][7];try {rs=stmt.executeQuery("select * from 学生信息表 where 教师号="+str);while(rs.next()) {arr[j][0]=rs.getString("学号");arr[j][1]=rs.getString("姓名");arr[j][2]=rs.getString("性别");arr[j][3]=rs.getString("年龄");arr[j][4]=rs.getString("班级名称");arr[j][5]=rs.getString("课程名");arr[j][6]=rs.getString("成绩");j++;}}catch(Exception e){e.printStackTrace();}String[] list= {"学号","姓名","性别","年龄","班级名称","课程名","成绩"};tb4=new JTable(arr,list); //创建表格scroll4=new JScrollPane(tb4);//f.add(btnrt,BorderLayout.NORTH);f.add(btnchange);f.add(btnrt);f.add(scroll4); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Teacher(tno);}});btnchange.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();scchange();}});}public void scchange() {//修改成绩页面JFrame f=new JFrame("修改成绩");f.setLayout(new FlowLayout());JLabel l=new JLabel("输入班级号");JTextField tf=new JTextField(10);JButton jb1=new JButton("确定");jb1.setFont(f3);jb1.setBackground(new Color(131,175,155));JButton jb2=new JButton("返回");jb2.setFont(f3);jb2.setBackground(new Color(131,175,155));f.add(l);f.add(tf);f.add(jb1);f.add(jb2);jb1.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new SCmg(tno,tf.getText()); //重新刷新成绩页面,为班级成绩}});jb2.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();scmg(tno); //取消按钮,重新显示页面}});f.setSize(200,150);f.setLocationRelativeTo(null);f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setVisible(true);}public void cssh(String str) {//班级信息查询JFrame f=new JFrame("班级信息");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();int i=0,j=0;ArrayList al=new ArrayList();try {rs=stmt.executeQuery("select distinct 学生信息表.班级号 ,班级表.班级名称,班级表.所属学院,班级表.班级人数,班级表.班主任 from 班级表,学生信息表 where 学生信息表.班级号=班级表.班级号 and 教师号="+str);while(rs.next()) {al.add(rs.getString("班级号"));al.add(rs.getString("班级名称"));al.add(rs.getString("所属学院"));al.add(rs.getInt("班级人数"));al.add(rs.getString("班主任"));i++;}}catch(Exception e){e.printStackTrace();}arr=new Object[i][5];try {rs=stmt.executeQuery("select distinct 学生信息表.班级号 ,班级表.班级名称,班级表.所属学院,班级表.班级人数,班级表.班主任 from 班级表,学生信息表 where 学生信息表.班级号=班级表.班级号 and 教师号="+str);while(rs.next()) {arr[j][0]=rs.getString("班级号");arr[j][1]=rs.getString("班级名称");arr[j][2]=rs.getString("所属学院");arr[j][3]=rs.getInt("班级人数");arr[j][4]=rs.getString("班主任");j++;}}catch(Exception e){e.printStackTrace();}String[] list= {"班级号","班级名称","所属学院","班级人数","班主任"};tb6=new JTable(arr,list); //创建表格scroll6=new JScrollPane(tb6);//f.add(btnrt,BorderLayout.NORTH);f.add(btnrt);f.add(scroll6); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Teacher(tno);}});}public void actionPerformed(ActionEvent e) {//按钮为“教师信息管理”,跳转页面if(e.getSource().equals(btnTmg)) {this.dispose();this.tmg(tno);}//按钮为“学生信息管理”,跳转页面if(e.getSource().equals(btnSsh)) {//new SM().display();this.dispose();this.ssh(tno);}//按钮为“课程信息管理”,跳转页面if(e.getSource().equals(btnCsh)) {this.dispose();this.csh(tno);}//按钮为“成绩信息管理”,跳转页面if(e.getSource().equals(btnSCmg)) {this.dispose();this.scmg(tno);}//按钮为“班级信息管理”,跳转页面if(e.getSource().equals(btnCSsh)) {this.dispose();this.cssh(tno);}//按钮为“退出管理系统”,程序退出if(e.getSource().equals(btnEXIT)) {//System.exit(0);this.dispose();new DengLu();}}public static void main(String[] args) {new Teacher("0002");}}

学生模块的源代码

package 学生学籍信息管理系统新;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;public class Student extends JFrame implements ActionListener{///注意//在类里面只有成员变量和方法,切忌在成员变量里直接定义//“管理员”标签JLabel l=new JLabel("--学生页面--");//定义面板容器JPanel p1=new JPanel();JPanel p2=new JPanel();//设置字体类型Font f1=new Font("宋体",Font.BOLD,30);Font f2=new Font("幼圆",Font.ITALIC,20);Font f3=new Font("楷体",Font.BOLD,15);Font f4=new Font("隶书",Font.PLAIN,18);//设置6个按钮,以便管理员操作Button btnSelf=new Button("个人信息管理");Button btnSCsh=new Button("成绩信息查询");Button btnCsh=new Button("课程信息查询");Button btnCSsh=new Button("班级信息查询");Button btnEXIT=new Button("退出");/** Author WangGuodong*///String dbURL="jdbc:sqlserver://localhost:1433;databaseName=学生学籍信息管理系统";String userName="sa";String userPwd="123";//Connection conn;Statement stmt;ResultSet rs;//Object[][] arr;String sno;String spwd;JScrollPane scroll1;JScrollPane jsp1;JTable stable1;JTable tb1;public void connDB() {try {conn=DriverManager.getConnection(dbURL,userName,userPwd);stmt=conn.createStatement();}catch(Exception e) {e.printStackTrace();}}public void closeDB() {try {rs.close();stmt.close();conn.close();}catch(Exception e) {e.printStackTrace();}}public Student(String str) {//构造方法super("学生页面");setLayout(new FlowLayout());//设置标签的颜色l.setFont(f1);l.setForeground(Color.blue);//设置按钮字体和颜色btnSelf.setFont(f2);btnSelf.setBackground(new Color(0,255,255));btnSCsh.setFont(f3);btnSCsh.setBackground(new Color(255,160,122));btnCsh.setFont(f4);btnCsh.setBackground(new Color(30,144,255));btnCSsh.setFont(f3);btnCSsh.setBackground(new Color(0,255,0));btnEXIT.setFont(f2);btnEXIT.setBackground(new Color(220,20,60));p1.add(l);p1.setOpaque(false);p2.setLayout(new GridLayout(4,2,10,10));p2.setOpaque(false);p2.add(btnSelf);p2.add(btnSCsh);p2.add(btnCsh);p2.add(btnCSsh);p2.add(btnEXIT);this.connDB();this.sno=str;//布局管理器this.add(p1);this.add(p2);ImageIcon ic=new ImageIcon("C:\\Users\\YXS\\eclipse-workspace\\edu-a-s\\src\\edu\\yxs\\sqldemo\\1.jpg");JLabel l=new JLabel(ic);l.setBounds(0,0,ic.getIconWidth(),ic.getIconHeight());//l.setBounds(0,0,this.getWidth(),this.getHeight());//JPanel ip=(JPanel)this.getContentPane();this.getLayeredPane().add(l,new Integer(Integer.MIN_VALUE));((JPanel)this.getContentPane()).setOpaque(false);//设置透明//设置顶层容器的大小、位置、可见性及close功能setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(350,300);setLocationRelativeTo(null);setVisible(true);btnSelf.addActionListener(this);btnSCsh.addActionListener(this);btnCsh.addActionListener(this);btnCSsh.addActionListener(this);btnEXIT.addActionListener(this);}public void cssearch(String str) {//班级查询方法JFrame f=new JFrame("班级信息页面");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();arr=new Object[1][6];try {rs=stmt.executeQuery("select * from 班级表1 where 学号="+str);while(rs.next()) {arr[0][0]=rs.getString("学号");arr[0][1]=rs.getString("班级号");arr[0][2]=rs.getString("班级名称");arr[0][3]=rs.getString("所属学院");arr[0][4]=rs.getString("班级人数");arr[0][5]=rs.getString("班主任");}}catch(Exception e){e.printStackTrace();}String[] list={"学号","班级号","班级名称","所属学院","班级人数","班主任"};tb1=new JTable(arr,list); //创建表格jsp1=new JScrollPane(tb1);f.add(btnrt);f.add(jsp1); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Student(sno);}});}public void csearch(String str) {//课程查询方法JFrame f=new JFrame("课程信息页面");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,150);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);int i=0,j=0;ArrayList ar=new ArrayList();this.connDB();try {rs=stmt.executeQuery("select * from 课程表2 where 学号="+str);while(rs.next()){ar.add(rs.getString("学号"));ar.add(rs.getString("课程号"));ar.add(rs.getString("课程名"));ar.add(rs.getString("教师号"));ar.add(rs.getString("教师姓名"));j++;}}catch(Exception e) {e.printStackTrace();}arr=new Object[j][5];try {rs=stmt.executeQuery("select * from 课程表2 where 学号="+str);while(rs.next()) {arr[i][0]=rs.getString("学号");arr[i][1]=rs.getString("课程号");arr[i][2]=rs.getString("课程名");arr[i][3]=rs.getString("教师号");arr[i][4]=rs.getString("教师姓名");i++;}}catch(Exception e){e.printStackTrace();}String[] list={"学号","课程号","课程名","教师号","教师姓名"};tb1=new JTable(arr,list); //创建表格jsp1=new JScrollPane(tb1);//f.add(btnrt,BorderLayout.NORTH);f.add(btnrt);f.add(jsp1); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Student(sno);}});}public void scsearch(String str) {//查询成绩页面int i=0,j=0;JFrame f=new JFrame("成绩信息页面");//JPanel p=new JPanel();f.setLayout(new FlowLayout());f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setSize(500,200);f.setVisible(true);f.setLocationRelativeTo(null);Button btnrt=new Button("返回");btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));//btnrt.setSize(20,10);this.connDB();ArrayList list=new ArrayList();try {rs=stmt.executeQuery("select * from 成绩表1 ");while(rs.next()) {list.add(rs.getString("学号"));list.add(rs.getString("姓名"));list.add(rs.getString("课程号"));list.add(rs.getString("课程名"));list.add(rs.getString("教师姓名"));list.add(rs.getString("成绩"));i++;}}catch(Exception e) {e.printStackTrace();}arr=new Object[i][6];try {rs=stmt.executeQuery("select * from 成绩表1 where 学号="+str+"order by 课程号");while(rs.next()) {arr[j][0]=rs.getString("学号");arr[j][1]=rs.getString("姓名");arr[j][2]=rs.getString("课程号");arr[j][3]=rs.getString("课程名");arr[j][4]=rs.getString("教师姓名");arr[j][5]=rs.getString("成绩");j++;}}catch(Exception e){e.printStackTrace();}String[] listname={"学号","姓名","课程号","课程名","教师姓名","成绩"};tb1=new JTable(arr,listname); //创建表格jsp1=new JScrollPane(tb1);//f.add(btnrt,BorderLayout.NORTH);f.add(btnrt);f.add(jsp1); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt); btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Student(str);}}); }public void display(String str) {//用来显示个人信息JFrame f1=new JFrame("个人信息");f1.setLayout(new FlowLayout());f1.setSize(500,150);f1.setVisible(true);f1.setLocationRelativeTo(null);Button btnchange=new Button("修改密码");Button btnrt=new Button("返回");btnchange.setFont(f3);btnchange.setBackground(new Color(131,175,155));btnrt.setFont(f3);btnrt.setBackground(new Color(131,175,155));this.connDB();arr=new Object[1][6];try {rs=stmt.executeQuery("select * from 学生表 where 学号="+str);while(rs.next()) {arr[0][0]=rs.getString("学号");arr[0][1]=rs.getString("姓名");arr[0][2]=rs.getString("性别");arr[0][3]=rs.getInt("年龄");arr[0][4]=rs.getString("班级号");arr[0][5]=rs.getString("密码");}}catch(Exception e){e.printStackTrace();}String[] columnNames= {"学号","姓名","性别","年龄","班级号","密码"};stable1=new JTable(arr,columnNames); //创建表格scroll1=new JScrollPane(stable1);f1.add(btnchange);f1.add(btnrt);f1.add(scroll1); //此处有个小bug,只有添加进滚轮面板,才能将头部名称显示出来//f1.add(btnrt);btnrt.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f1.dispose();new Student(sno);}});btnchange.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f1.dispose();change();}});}public void change() {//创建修改密码页面,新窗口用于修改密码this.connDB();JFrame f=new JFrame("修改密码");f.setLayout(new FlowLayout());JPanel p=new JPanel();JPanel p1=new JPanel();p.setLayout(new GridLayout(3,2));JLabel btn1=new JLabel("初始密码:");btn1.setFont(f3);JTextField tf1=new JTextField(10);JLabel btn2=new JLabel("修改密码:");btn2.setFont(f3);JTextField tf2=new JTextField(10);Button ok=new Button("确定");ok.setBackground(new Color(131,175,155));Button cancel=new Button("取消");cancel.setBackground(new Color(131,175,155));p.add(btn1);p.add(tf1);p.add(btn2);p.add(tf2);p1.add(ok);p1.add(cancel);f.add(p);f.add(p1);f.setDefaultCloseOperation(EXIT_ON_CLOSE);f.setLocation(530,300);//f.setLocationRelativeTo(null);f.setSize(300,150);f.setVisible(true);ok.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {try {//获取初始密码rs=stmt.executeQuery("select * from 学生表 where 学号="+sno);while(rs.next()) {spwd=rs.getString("密码").trim(); //!!!对于数据库中传回来的值一定要用trim();因为后面会有多余的空格!!!/*bug:数据库中数据会有空格,mmp,记于12/10/凌晨1:56,耻!*///spwd="123";}}catch(Exception e1) {e1.printStackTrace();}if(tf1.getText().equals("") || tf2.getText().equals("")) {JOptionPane.showMessageDialog(null, "密码不能为空!请重新修改!");}else {if(!spwd.equals(tf1.getText())) {//spwd.equals(tf1.getText().trim())JOptionPane.showMessageDialog(null,"初始密码错误,请重新输入密码!"); //"原密码是"+spwd+"输入密码是"+tf1.getText();tf1.setText("");tf2.setText("");}else {try {stmt.executeUpdate("update 学生表 set 密码 ="+"'"+tf2.getText().trim()+"'"+"where 学号="+sno);}catch(Exception e1) {e1.printStackTrace();}JOptionPane.showMessageDialog(null,"密码修改成功!请重新登录!");f.dispose();new DengLu();}}}});cancel.addMouseListener(new MouseAdapter() {public void mouseClicked(MouseEvent e) {f.dispose();new Student(sno);}});}public void actionPerformed(ActionEvent e) {//按钮为“个人信息修改”,跳转页面if(e.getSource().equals(btnSelf)) {this.dispose();this.display(sno);}//按钮为“成绩信息查询”,跳转页面if(e.getSource().equals(btnSCsh)) {//new SM().display();this.dispose();this.scsearch(sno);}//按钮为“课程信息查询”,跳转页面if(e.getSource().equals(btnCsh)) {this.dispose();this.csearch(sno);}//按钮为“班级信息查询”,跳转页面if(e.getSource().equals(btnCSsh)) {this.dispose();this.cssearch(sno);}//按钮为“退出管理系统”,程序退出if(e.getSource().equals(btnEXIT)) {//System.exit(0);this.dispose();new DengLu();}}public static void main(String[] args) {// TODO Auto-generated method stubnew Student("1610421084");}

管理员模块的源代码

package 学生学籍信息管理系统新;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class GLFrame extends JFrame implements ActionListener{///注意//在类里面只有成员变量和方法,切忌在成员变量里直接定义//“管理员”标签JLabel l=new JLabel("--管理员--");//定义面板容器JPanel p1=new JPanel();JPanel p2=new JPanel();//设置字体类型Font f1=new Font("宋体",Font.BOLD,30);Font f2=new Font("幼圆",Font.ITALIC,30);Font f3=new Font("楷体",Font.BOLD,18);Font f4=new Font("隶书",Font.PLAIN,40);//设置6个按钮,以便管理员操作JButton btnTM=new JButton("教师信息管理");JButton btnSM=new JButton("学生信息管理");JButton btnCM=new JButton("课程信息管理");JButton btnSCM=new JButton("成绩信息管理");JButton btnCSM=new JButton("班级信息管理");JButton btnEXIT=new JButton("退出管理系统");public GLFrame() {//构造方法super("管理员管理页面");setLayout(new FlowLayout());//设置标签的颜色l.setFont(f1);l.setForeground(Color.blue);//设置按钮字体和颜色btnTM.setFont(f3);btnTM.setContentAreaFilled(false);//btnTM.setBackground(Color.blue);btnSM.setFont(f3);btnSM.setContentAreaFilled(false);btnCM.setFont(f3);btnCM.setContentAreaFilled(false);btnSCM.setFont(f3);btnSCM.setContentAreaFilled(false);btnCSM.setFont(f3);btnCSM.setContentAreaFilled(false);btnEXIT.setFont(f3);btnEXIT.setContentAreaFilled(false);p1.add(l);p1.setOpaque(false);p2.setLayout(new GridLayout(3,2,10,10));p2.setOpaque(false);p2.add(btnTM);p2.add(btnSM);p2.add(btnCM);p2.add(btnSCM);p2.add(btnCSM);p2.add(btnEXIT);//布局管理器this.add(p1);this.add(p2);//设置背景图片ImageIcon ic=new ImageIcon("D:\\picture\\管理界面.png");JLabel l=new JLabel(ic);l.setBounds(0,0,ic.getIconWidth(),ic.getIconHeight());//l.setBounds(0,0,this.getWidth(),this.getHeight());//JPanel ip=(JPanel)this.getContentPane();this.getLayeredPane().add(l,new Integer(Integer.MIN_VALUE));((JPanel)this.getContentPane()).setOpaque(false);//设置透明//设置顶层容器的大小、位置、可见性及close功能setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setSize(350,300);setLocationRelativeTo(null);setVisible(true);btnTM.addActionListener(this);btnSM.addActionListener(this);btnCM.addActionListener(this);btnSCM.addActionListener(this);btnCSM.addActionListener(this);btnEXIT.addActionListener(this);}public void actionPerformed(ActionEvent e) {//按钮为“教师信息管理”,跳转页面if(e.getSource().equals(btnTM)) {this.dispose();new TM().display();}//按钮为“学生信息管理”,跳转页面if(e.getSource().equals(btnSM)) {//new SM().display();this.dispose();new SM().display();}//按钮为“课程信息管理”,跳转页面if(e.getSource().equals(btnCM)) {this.dispose();new CM().display();}//按钮为“成绩信息管理”,跳转页面if(e.getSource().equals(btnSCM)) {this.dispose();new SCM().display();}//按钮为“班级信息管理”,跳转页面if(e.getSource().equals(btnCSM)) {this.dispose();new ClassM().display();}//按钮为“退出管理系统”,程序退出if(e.getSource().equals(btnEXIT)) {//System.exit(0);this.dispose();new DengLu();}}public static void main(String[] args) {// TODO Auto-generated method stubnew GLFrame();}}

本博主只是入门新手,思路和源码仅供参考,这个设计还有一些缺陷,博主正在奋力修改中!

设计小结

爱你所爱,行你所行,听从你心,无问西东!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。